morgan pushed to branch mullvad-browser-128.7.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser

Commits:

1 changed file:

Changes:

  • .gitlab/issue_templates/Rebase Browser - Rapid.md
    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`