|
1
|
+**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
|
|
2
|
+
|
|
3
|
+<details>
|
|
4
|
+ <summary>Explanation of Variables</summary>
|
|
5
|
+
|
|
6
|
+- `$(NIGHTLY_VERSION)`: the Mozilla defined nightly version, used in various places for building tor-browser tags, labels, etc
|
|
7
|
+ - **Example**: `130.0a1`
|
|
8
|
+- `$(NIGHTLY_TAG)`: the Mozilla defined hg (Mercurial) tag associated with `$(NIGHTLY_VERSION)`
|
|
9
|
+ - **Example**: `FIREFOX_NIGHTLY_130_END`
|
|
10
|
+- `$(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)
|
|
11
|
+ - **Example**: `FIREFOX_NIGHTLY_129_END`
|
|
12
|
+- `$(BROWSER_VERSION)`: the browser version which will first be based on the next major ESR version this *Firefox* Nightly series is leading up to
|
|
13
|
+ - **Example**: `15`
|
|
14
|
+- `$(BASE_BROWSER_BRANCH)`: the full name of the current `base-browser` branch based off of the Firefox Nightly channel
|
|
15
|
+ - **Example**: `base-browser-130.0a1-15.0-2`
|
|
16
|
+- `$(BASE_BROWSER_BRANCH_TAG)`: the `base-browser` build tag used as base commit for `mullvad-browser`
|
|
17
|
+ - **Example**: `base-browser-130.0a1-15.0-2-build1`
|
|
18
|
+- `$(BASE_BROWSER_BRANCH_PREV)`: the full name of the previous `base-browser` branch based off of the Firefox Nightly channel
|
|
19
|
+ - **Example**: `base-browser-129.0a1-15.0-2`
|
|
20
|
+- `$(BASE_BROWSER_BRANCH_PREV_TAG)`: the `base-browser` build tag used as base commit for the previous `mullvad-browser`
|
|
21
|
+ - **Example**: `base-browser-129.0a1-15.0-2-build1`
|
|
22
|
+- `$(MULLVAD_BROWSER_BRANCH)`: the full name of the current `mullvad-browser` branch
|
|
23
|
+ - **Example**: `mullvad-browser-130.0a1-15.0-2`
|
|
24
|
+- `$(MULLVAD_BROWSER_BRANCH_PREV)`: the full name of the previous `mullvad-browser` branch
|
|
25
|
+ - **Example**: `mullvad-browser-129.0a1-15.0-2`
|
|
26
|
+</details>
|
|
27
|
+
|
|
28
|
+**NOTE**: It is presuemd the equivalent Tor Browser rapid-release rebase has been completed, as this rebase depends on a rebased `base-browser` branch
|
|
29
|
+
|
|
30
|
+### Update Branch Protection Rules
|
|
31
|
+
|
|
32
|
+- [ ] In [Repository Settings](https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/settings/repository):
|
|
33
|
+ - [ ] Remove previous nightly `mullvad-browser` branch protection rules (this will prevent pushing new changes to the branches being rebased)
|
|
34
|
+ - [ ] Create new `mullvad-browser` branch protection rule:
|
|
35
|
+ - **Branch**: `mullvad-browser-$(NIGHTLY_VERSION)-$(BROWSER_VERSION)-*`
|
|
36
|
+ - **Example**: `mullvad-browser-130.0a1-15.0-*`
|
|
37
|
+ - **Allowed to merge**: `Maintainers`
|
|
38
|
+ - **Allowed to push and merge**: `Maintainers`
|
|
39
|
+ - **Allowed to force push**: `false`
|
|
40
|
+ - ⚠️ **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!
|
|
41
|
+
|
|
42
|
+### **Create and Push New Branch**
|
|
43
|
+
|
|
44
|
+- [ ] Create new alpha `mullvad-browser` branch from this ESR's rapid `base-browser` tag
|
|
45
|
+ - Branch name in the form: `mullvad-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1`
|
|
46
|
+ - **Example**: `git branch mullvad-browser-130.0a1-15.0-2 base-browser-130.0a1-15.0-2-build1`
|
|
47
|
+- [ ] Push new `mullvad-browser` branch to `upstream`
|
|
48
|
+- [ ] Push the `base-browser` tag to `upstream`
|
|
49
|
+
|
|
50
|
+### **Rebase mullvad-browser**
|
|
51
|
+
|
|
52
|
+- [ ] Checkout a new local branch for the `mullvad-browser` rebase
|
|
53
|
+ - **Example**: `git branch mullvad-browser-rebase upstream/mullvad-browser-130.0a1-15.0-2`
|
|
54
|
+- [ ] `mullvad-browser` rebase
|
|
55
|
+ - [ ] Cherry-pick the previous `mullvad-browser` rapid branch's commit range
|
|
56
|
+ - **Example**: `git cherry-pick base-browser-129.0a1-15.0-2-build1..mullvad-browser-129.0a1-15.0-2`
|
|
57
|
+ - [ ] Rebase and autosquash these newly cherry-picked commits
|
|
58
|
+ - **Example**: `git rebase --autosquash --interactive upstream/mullvad-browser-130.0a1-15.0-2`
|
|
59
|
+ - [ ] Cherry-pick the new `mullvad-browser` alpha commits (i.e. the new dangling commits which did not appear in the previous Mullvad Browser rapid channel):
|
|
60
|
+ - **Example** `git cherry-pick mullvad-browser-128.1.0esr-14.5-1-build1..upstream/mullvad-browser-128.1.0esr-14.5-1`
|
|
61
|
+ - [ ] 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.
|
|
62
|
+ - **Example**: `git rebase --autosquash --interactive upstream/mullvad-browser-130.0a1-15.0-2`
|
|
63
|
+- [ ] Compare patch sets to ensure nothing *weird* happened during conflict resolution:
|
|
64
|
+ - [ ] diff of diffs:
|
|
65
|
+ - 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 -
|
|
66
|
+ - `git diff $(BASE_BROWSER_BRANCH_PREV_TAG)..$(MULLVAD_BROWSER_BRANCH_PREV) > current_patchset.diff`
|
|
67
|
+ - `git diff $(BASE_BROWSER_BRANCH_TAG)..HEAD > rebased_patchset.diff`
|
|
68
|
+ - diff `current_patchset.diff` and `rebased_patchset.diff`
|
|
69
|
+ - 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 `mullvad-browser` branch)
|
|
70
|
+ - [ ] rangediff: `git range-diff $(BASE_BROWSER_BRANCH_PREV_TAG)..$(MULLVAD_BROWSER_BRANCH_PREV) $(BASE_BROWSER_BRANCH_TAG)..HEAD`
|
|
71
|
+ - **Example**: `git range-diff base-browser-129.0a1-15.0-2-build1..upstream/mullvad-browser-129.0a1-15.0-2 base-browser-130.0a1-15.0-2-build1..HEAD`
|
|
72
|
+- [ ] Open MR for the `mullvad-browser` rebase
|
|
73
|
+- [ ] Merge
|
|
74
|
+
|
|
75
|
+### **Sign and Tag**
|
|
76
|
+
|
|
77
|
+- [ ] Sign/Tag `HEAD` of the merged `mullvad-browser` branch:
|
|
78
|
+ - In **mullvad-browser.git**, checkout the new rapid `mullvad-browser` branch
|
|
79
|
+ - In **tor-browser-build.git**, run signing script:
|
|
80
|
+ ```bash
|
|
81
|
+ ./tools/browser/sign-tag.mullvadbrowser rapid build1
|
|
82
|
+ ```
|
|
83
|
+ - [ ] Push tag to `upstream` |