The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2024-03-28T14:03:17Zhttps://gitlab.torproject.org/tpo/community/l10n/-/issues/40111Translate Tor Browser Manual to Albanian, Belarusian, Bulgarian, Chinese Sim...2024-03-28T14:03:17ZemmapeelTranslate Tor Browser Manual to Albanian, Belarusian, Bulgarian, Chinese Simplified, Chinese Traditional (TW),Georgian, Hungarian, Indonesian, Korean, Macedonian, Pashto, Romanian, Russian, Thai, and Wolof* Albanian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/sq/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/sq/svg-badge.svg" alt="Translation status" /></a>
* ...* Albanian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/sq/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/sq/svg-badge.svg" alt="Translation status" /></a>
* Belarusian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/be/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/be/svg-badge.svg" alt="Translation status" /></a>
* Bulgarian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/bg/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/bg/svg-badge.svg" alt="Translation status" /></a>
* Chinese Simplified <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/zh_Hans/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/zh_Hans/svg-badge.svg" alt="Translation status" /></a>
* Chinese Traditional (TW) <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/zh_Hant/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/zh_Hant/svg-badge.svg" alt="Translation status" /></a>
* Georgian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/ka/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/ka/svg-badge.svg" alt="Translation status" /></a>
* Hungarian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/hu/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/hu/svg-badge.svg" alt="Translation status" /></a>
* Indonesian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/id/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/id/svg-badge.svg" alt="Translation status" /></a>
* Korean <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/ko/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/ko/svg-badge.svg" alt="Translation status" /></a>
* Macedonian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/mk/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/mk/svg-badge.svg" alt="Translation status" /></a>
* Pashto <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/pa/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/pa/svg-badge.svg" alt="Translation status" /></a>
* Romanian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/ro/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/ro/svg-badge.svg" alt="Translation status" /></a>
* Russian <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/ru/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/ru/svg-badge.svg" alt="Translation status" /></a>
* Thai <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/th/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/th/svg-badge.svg" alt="Translation status" /></a>
* Wolof <a href="https://hosted.weblate.org/projects/tor/tor-browser/tor-browser-user-manual/wo/"><img src="https://hosted.weblate.org/widget/tor/tor-browser/tor-browser-user-manual/wo/svg-badge.svg" alt="Translation status" /></a>
~emmapeelemmapeelhttps://gitlab.torproject.org/tpo/tpa/team/-/issues/41172Monitor the system event log on gnt-dal nodes2024-03-28T13:49:06ZJérôme Charaouilavamind@torproject.orgMonitor the system event log on gnt-dal nodesWe should be monitoring the system event logs (SEL) on our Supermicro gnt-dal nodes.
This will allow us to receive alerts related the chassis intrusion detection mechanism, power supply, cooling and environmental sensors.We should be monitoring the system event logs (SEL) on our Supermicro gnt-dal nodes.
This will allow us to receive alerts related the chassis intrusion detection mechanism, power supply, cooling and environmental sensors.Jérôme Charaouilavamind@torproject.orgJérôme Charaouilavamind@torproject.orghttps://gitlab.torproject.org/tpo/tpa/team/-/issues/41565Puppet fighting over /etc/apt/sources.list2024-03-28T13:14:07ZJérôme Charaouilavamind@torproject.orgPuppet fighting over /etc/apt/sources.listOur current Puppet is set up to purge (delete) `/etc/apt/sources.list`.
The problem is, APT::Periodic (`apt-daily.service`) is recreating it every day: the file's creation time concurs with the schedule of`apt-daily.timer` (as seen with...Our current Puppet is set up to purge (delete) `/etc/apt/sources.list`.
The problem is, APT::Periodic (`apt-daily.service`) is recreating it every day: the file's creation time concurs with the schedule of`apt-daily.timer` (as seen with `systemctl list-timers apt-daily.timer`). The creation of the file can also be reproduced manually:
```
# rm /var/lib/apt/periodic/*-stamp
# /usr/lib/apt/apt.systemd.daily update
# ls -l /etc/apt/sources.list
```
The file being purged every day leads to frequent and unnecessary triggers of `apt update`, and this sometimes even causes Puppet run failures which show up in monitoring:
```
puppet-agent[3791032]: (/Stage[main]/Apt/File[sources.list]/ensure) removed (corrective)
puppet-agent[3791032]: (/Stage[main]/Apt::Update/Exec[apt_update]/returns) Reading package lists...
puppet-agent[3791032]: (/Stage[main]/Apt::Update/Exec[apt_update]/returns) E: Could not get lock /var/lib/apt/lists/lock. It is held by process 3791201 (apt-get)
puppet-agent[3791032]: (/Stage[main]/Apt::Update/Exec[apt_update]/returns) E: Unable to lock directory /var/lib/apt/lists/
puppet-agent[3791032]: (/Stage[main]/Apt::Update/Exec[apt_update]) Failed to call refresh: '/usr/bin/apt-get update' returned 100 instead of one of [0]
puppet-agent[3791032]: (/Stage[main]/Apt::Update/Exec[apt_update]) '/usr/bin/apt-get update' returned 100 instead of one of [0]
puppet-agent[3791032]: Applied catalog in 14.75 seconds
systemd[1]: puppet-run.service: Main process exited, code=exited, status=6/NOTCONFIGURED
systemd[1]: puppet-run.service: Failed with result 'exit-code'.
```Jérôme Charaouilavamind@torproject.orgJérôme Charaouilavamind@torproject.orghttps://gitlab.torproject.org/tpo/network-health/metrics/metrics-sql-tables/-/issues/13Update `server_families` table2024-03-28T13:13:48ZGeorg KoppenUpdate `server_families` tableIn the wake of reviewing and adapting https://gitlab.torproject.org/tpo/network-health/metrics/descriptorParser/-/merge_requests/53 we changed the `server_families` table as well: the `verified` part is gone. We need to update the respec...In the wake of reviewing and adapting https://gitlab.torproject.org/tpo/network-health/metrics/descriptorParser/-/merge_requests/53 we changed the `server_families` table as well: the `verified` part is gone. We need to update the respective table as well.HiroHirohttps://gitlab.torproject.org/tpo/tpa/team/-/issues/41557order and setup new backup server (bungei 2 AKA bacula-storage-02)2024-03-28T12:44:38Zanarcatorder and setup new backup server (bungei 2 AKA bacula-storage-02)The new backup server (#41364) has been approved.
@lavamind can you settle the specs, and order the box? i'm happy to review and approve the hardware if you don't feel fully confident, of course...
i also put the server setup in this i...The new backup server (#41364) has been approved.
@lavamind can you settle the specs, and order the box? i'm happy to review and approve the hardware if you don't feel fully confident, of course...
i also put the server setup in this issue, but we can also spin that out in a separate one if we want to... one thing that's for sure is we want to move to barman for the psql backups (#40950), but one ... uh... problem with that approach is that we actually want cross-backups, so, technically, we *can't* actually deploy *that* on the new server ... oops?
so maybe we need to move other psql databases and we'll have to resize the partition anyways? urghl.
thanks!Jérôme Charaouilavamind@torproject.orgJérôme Charaouilavamind@torproject.orghttps://gitlab.torproject.org/tpo/network-health/metrics/tagtor/-/issues/21Add total bw and per relay bw and consensus weight to the routers display2024-03-28T11:15:30ZGeorg KoppenAdd total bw and per relay bw and consensus weight to the routers displayWe want to know how much weight relays have and their advertised bandwidth. Those could be additional columns. Additionally, I think it's worth having the advertised bw visible for all the relays under a particular filter, which could be...We want to know how much weight relays have and their advertised bandwidth. Those could be additional columns. Additionally, I think it's worth having the advertised bw visible for all the relays under a particular filter, which could be displayed below the router/bridges table.TagTor is completed for its scope in Sponsor 112HiroHirohttps://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41083Make deb package for Mullvad Browser2024-03-28T10:14:54ZboklmMake deb package for Mullvad BrowserWe should generate a deb package for Mullvad Browser.We should generate a deb package for Mullvad Browser.boklmboklmhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42489Lox module notifications2024-03-28T10:07:16ZhenryLox module notificationsCurrently the Lox module does not give out notifications for when its internals change, so:
+ `TorSetting` is not notified when the bridges change. So it is only set to the new value when restarting Tor Browser.
+ "about:preferences" is...Currently the Lox module does not give out notifications for when its internals change, so:
+ `TorSetting` is not notified when the bridges change. So it is only set to the new value when restarting Tor Browser.
+ "about:preferences" is not notified when the invites change or when there is a blockage or upgrade event.henryhenryhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42479Switch from localized strings to error codes in TorConnect errors2024-03-28T09:51:13ZPier Angelo VendrameSwitch from localized strings to error codes in TorConnect errorsAs noted in !938, we try to translate some error messages in `TorConnect`.
However, it isn't great, because:
1. it's backend, localized strings don't belong there
2. it's backend, we need to pass stuff usable by the frontends in code (...As noted in !938, we try to translate some error messages in `TorConnect`.
However, it isn't great, because:
1. it's backend, localized strings don't belong there
2. it's backend, we need to pass stuff usable by the frontends in code (especially important for Android), it's the frontend's role to transform it in something for the users
3. for Android, this part of the code lives in GeckoView, which we currently don't translatePier Angelo VendramePier Angelo Vendramehttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42192Correctly round new windows when bookmarks toolbar is set to "Only Show on Ne...2024-03-28T09:06:29ZdonutsCorrectly round new windows when bookmarks toolbar is set to "Only Show on New Tab"This has happened at least twice to me, but I have no idea how to reproduce it.
On first launch, the viewport in Tor Browser 13.0 is 900px high and unletterboxed. After a period of several days, an additional 30px appears to get added t...This has happened at least twice to me, but I have no idea how to reproduce it.
On first launch, the viewport in Tor Browser 13.0 is 900px high and unletterboxed. After a period of several days, an additional 30px appears to get added to the height of the overall window, increasing the viewport to 930px and triggering letterboxing.
Note: this is not due to changes in the height of the browser chrome eating into the viewport (e.g. the bookmarks bar being on or off), as the height of the entire window has increased by 30px.
Tor Browser will then reliably reopen itself at the new dimensions even when quit and relaunched. Wiping the TorBrowser-Data file from macOS' Application Support folder seems to reset the browser back to its original dimensions, however.
<details><summary>Show screenshot</summary>
![letterboxing-error](/uploads/a23e2bbbad31b4a4d0ac2d6a33f1c445/letterboxing-error.png)
</details>ma1ma1https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-webext/-/issues/890.7.3 rejected from mozilla2024-03-28T04:37:33Zmeskiomeskio@torproject.org0.7.3 rejected from mozillaWe got this email:
> Due to issues discovered during the review process, one or more versions of your add-on Snowflake will be disabled on addons.mozilla.org in 14 day(s). Please
> see the reviewer’s comments below for more information.
...We got this email:
> Due to issues discovered during the review process, one or more versions of your add-on Snowflake will be disabled on addons.mozilla.org in 14 day(s). Please
> see the reviewer’s comments below for more information.
>
> ********
> Details:
> - Reproducing the submitted release version based on the provided source code package and instructions failed.
>
> You can access the console output at https://paste.mozilla.org/kOCS6sFe
> Environment used for building: Node 20.10.0, npm 10.2.3 on Ubuntu 22.04 LTS x64 (10GB RAM, 6 CPUs)
>
> Please test your build in a clean environment to make sure it is reproducible. If necessary, update the source code package and/or the instructions to
> reproduce.
> Please read through the instructions at https://extensionworkshop.com/documentation/publish/source-code-submission/ .
>
> Version(s) affected:
> 0.7.3
> ********
>
> Please address the issues raised in the reviewer's notes and inquire about any unclear items. Afterwards, please upload a new version of your add-on at
> https://addons.mozilla.org/en-US/developers/addon/torproject-snowflake/versions.
>
> To respond, please reply to this email or visit https://addons.mozilla.org/en-US/developers/addon/torproject-snowflake/versions. If we do not hear from you
> within 14 day(s) of this notification, these versions will be removed from addons.mozilla.org. Current users of these versions will be unaffected.Cecylia BocovichCecylia Bocovichhttps://gitlab.torproject.org/tpo/tpa/team/-/issues/41539Create an operations email list2024-03-28T01:14:48Zal smithCreate an operations email listThe operations team needs an email list to coordinate its work. (This will help with our grants@torproject.org email issues, as we'll be able to reduce the number of people using that alias once the operations list is established.)
**Re...The operations team needs an email list to coordinate its work. (This will help with our grants@torproject.org email issues, as we'll be able to reduce the number of people using that alias once the operations list is established.)
**Requirements**
1. Does **not** require a moderation queue
2. Allows people who are not subscribed to the list to send email to the list **without friction**
3. Is not archived (for anyone, including members of the list)
4. Is not displayed on lists.torproject.org
Is that something a list can do?
If so, we request `tor-operations@` to be created. :smile:
Note: It's possible that an operations list exits already, per this ticket from 8 years ago, but I don't think so based on my quick test. Just adding for due diligence since I noticed it: https://gitlab.torproject.org/tpo/tpa/team/-/issues/15992Jérôme Charaouilavamind@torproject.orgJérôme Charaouilavamind@torproject.org2024-03-31https://gitlab.torproject.org/tpo/web/support/-/issues/285unify tor installation per platform2024-03-28T00:29:36Znyxnorunify tor installation per platform<!--
* Use this issue template for suggesting new docs or updates to existing docs.
-->
### Problem to solve
<!-- Include the following detail as necessary:
-->
* What feature(s) affected?
* What docs or doc section affected? Include ...<!--
* Use this issue template for suggesting new docs or updates to existing docs.
-->
### Problem to solve
<!-- Include the following detail as necessary:
-->
* What feature(s) affected?
* What docs or doc section affected? Include links or paths.
* Is there a problem with a specific document, or a feature/process that's not addressed sufficiently in docs?
* Any other ideas or requests?
There is not unified tor installation per package manager. One can find for OpenBSD on the `relay/setup/guard` and `relay/setup/bridge`, in which the instructions differ.
### Further details
<!--
* Include use cases, benefits, and/or goals for this work.
* If adding content: What audience is it intended for? (What roles and scenarios?)
-->
* https://community.torproject.org/relay/setup/guard/openbsd/
* https://community.torproject.org/relay/setup/bridge/openbsd/
### Proposal
<!-- Further specifics for how can we solve the problem. -->
My proposal is to maintain a tor/installation or any other name to instruct on ho to install tor per platform. The relay/setup guides will refer to this documentation and them they will slim down to just contain information about how to configure the wanted relay type.
### Who can address the issue
<!-- What if any special expertise is required to resolve this issue? -->
@gus if possible, create a page https://community.torproject.org/tor/pkg-manager or something like it.ebanamebanam@torproject.orgebanamebanam@torproject.orghttps://gitlab.torproject.org/tpo/team/-/issues/266Prepare DRL meeting2024-03-27T20:53:09ZGabagaba@torproject.orgPrepare DRL meetingGabagaba@torproject.orgGabagaba@torproject.org2024-03-19https://gitlab.torproject.org/tpo/ux/research/-/issues/136Onboard and coordinate user research grantees2024-03-27T19:07:43ZdonutsOnboard and coordinate user research granteesIn https://gitlab.torproject.org/tpo/ux/research/-/issues/128, we prepared two sets of materials for Privacy Resilience Grant recipients to use in their activities. Those include:
- A desirability study of the new illustrations: https:/...In https://gitlab.torproject.org/tpo/ux/research/-/issues/128, we prepared two sets of materials for Privacy Resilience Grant recipients to use in their activities. Those include:
- A desirability study of the new illustrations: https://gitlab.torproject.org/tpo/ux/research/-/issues/137
- A card sorting study of the support-dot menu: https://gitlab.torproject.org/tpo/ux/research/-/issues/8
Although we plan to distribute the desirability study to all Privacy Resilience Grant recipients, only the three partners who opted-in to conduct moderated user research will perform the card sorting activity. That second group of three partners will subsequently require more hands-on onboarding.
**Checklist**
- [ ] Finalize the user research materials for each activity
- [ ] Forward the materials to partners via email
- [ ] Co-ordinate a time to onboard our three card sorting facilitators on a BBB call (@raya will send round a poll)
- [ ] Provide ad-hoc support for research activities to all partners as required (e.g. via email, Signal or IRC/Matrix)
- [ ] Analyze the results of each study and write reports with recommendationsSponsor 9 - Phase 7 - Usability and Community Intervention on Support for Democracy and Human Rightssajolidasajolidahttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42202Fluent migration: crypto safety2024-03-27T18:31:26ZhenryFluent migration: crypto safetyMigrate "cryptoSafetyPrompt.properties" to Fluent.Migrate "cryptoSafetyPrompt.properties" to Fluent.henryhenryhttps://gitlab.torproject.org/tpo/core/onionmasq/-/issues/70Add support for Snowflake2024-03-27T17:31:16ZetaAdd support for SnowflakeThe current PT support only does obfs4. We probably want snowflake too.The current PT support only does obfs4. We probably want snowflake too.VPN pre-alpha 06Micah Elizabeth ScottMicah Elizabeth Scott2024-03-07https://gitlab.torproject.org/tpo/applications/vpn/-/issues/136Design the user interface for v6 of the VPN pre-alpha2024-03-27T17:31:07ZdonutsDesign the user interface for v6 of the VPN pre-alphaSee the linked issues below for specific changes and new features, each of which should include its own estimate.See the linked issues below for specific changes and new features, each of which should include its own estimate.VPN pre-alpha 06donutsdonutshttps://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41112Fix indentation of projects/browser/RelativeLink/start-browser2024-03-27T16:54:03ZboklmFix indentation of projects/browser/RelativeLink/start-browserThe file `projects/browser/RelativeLink/start-browser` is currently
indented with a mix of tabs, 8, 4 or 2 spaces.
I think we can change it to 2 spaces everywhere.The file `projects/browser/RelativeLink/start-browser` is currently
indented with a mix of tabs, 8, 4 or 2 spaces.
I think we can change it to 2 spaces everywhere.boklmboklmhttps://gitlab.torproject.org/tpo/applications/mullvad-browser/-/issues/277Rebase Mullvad Browser stable onto Firefox 115.9.1esr2024-03-27T16:36:14Zma1Rebase Mullvad Browser stable onto Firefox 115.9.1esr**NOTE:** All examples in this template reference the rebase from 102.7.0esr to 102.8.0esr
<details>
<summary>Explanation of Variables</summary>
- `$(ESR_VERSION)`: the Mozilla defined ESR version, used in various places for building m...**NOTE:** All examples in this template reference the rebase from 102.7.0esr to 102.8.0esr
<details>
<summary>Explanation of Variables</summary>
- `$(ESR_VERSION)`: the Mozilla defined ESR version, used in various places for building mullvad-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`
- `$(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`
- `$(BASE_BROWSER_BRANCH_TAG)`: the `base-browser` build tag used as base commit for `mullvad-browser`
- **Example**: `base-browser-102.8.0esr-12.0-1-build1`
- `$(BASE_BROWSER_BRANCH_PREV_TAG)`: the `base-browser` build tag used as base commit for the previous `mullvad-browser`
- **Example**: `base-browser-102.7.0esr-12.0-1-build1`
- `$(MULLVAD_BROWSER_BRANCH)`: the full name of the current `mullvad-browser` branch
- **Example**: `mullvad-browser-102.8.0esr-12.0-1`
- `$(MULLVAD_BROWSER_BRANCH_PREV)`: the full name of the previous `mullvad-browser` branch
- **Example**: `mullvad-browser-102.7.0esr-12.0-1`
</details>
**NOTE:** It is assumed that we've already rebased and tagged `base-browser` stable
### **Bookkeeping**
- [x] Link this issue to the appropriate [Release Prep](https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/?sort=updated_desc&state=opened&label_name%5B%5D=Release%20Prep) issue.
### Update Branch Protection Rules
- [x] In [Repository Settings](https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/settings/repository):
- [x] Remove previous stable `mullvad-browser` branch protection rules (this will prevent pushing new changes to the branches being rebased)
- [x] Create new `mullvad-browser` branch protection rule:
- **Branch**: `mullvad-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1*`
- **Example**: `mullvad-browser-102.8.0esr-12.0-1*`
- **Allowed to merge**: `Maintainers`
- **Allowed to push and merge**: `Maintainers`
- **Allowed to force push**: `false`
### **Create and Push New Branch**
- [x] Create new stable `mullvad-browser` branch from this ESR's stable `base-browser` tag
- Branch name in the form: `mullvad-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1`
- **Example**: `git branch mullvad-browser-102.8.0esr-12.0-1 base-browser-102.8.0esr-12.0-1-build1`
- [x] Push new `mullvad-browser` branch to `upstream`
- [x] Push `base-browser` tag to `upstream`
- [x] Push `$(ESR_TAG)` to `upstream`
### **Rebase mullvad-browser**
- [x] Checkout a new local branch for the `mullvad-browser` rebase
- **Example**: `git branch mullvad-browser-rebase upstream/mullvad-browser-102.8.0esr-12.0-1`
- [x] `mullvad-browser` rebase
- [x] Cherry-pick the previous `mullvad-browser` branch's commit range up to the last `mullvad-browser` `build1` tag
- **Example**: `git cherry-pick base-browser-102.7.0esr-12.0-1-build1..mullvad-browser-102.7.0esr-12.0-1-build1`
- [x] Rebase and autosquash these newly cherry-picked commits
- **Example**: `git rebase --autosquash --interactive upstream/mullvad-browser-102.8.0esr-12.0-1`
- [x] Cherry-pick remainder of patches after the last `mullvad-browser` `buildN` tag
- **Example**: `git cherry-pick mullvad-browser-102.7.0esr-12.0-1-build1..upstream/mullvad-browser-102.7.0esr-12.0-1`
- [x] 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 upstream/mullvad-browser-102.8.0esr-12.0-1`
- [x] Compare patch sets to ensure nothing _weird_ happened during conflict resolution:
- [x] 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 -
- `git diff $(BASE_BROWSER_BRANCH_PREV_TAG)..$(MULLVAD_BROWSER_BRANCH_PREV) > current_patchset.diff`
- `git diff $(BASE_BROWSER_BRANCH_TAG)..HEAD > rebased_patchset.diff`
- 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 `mullvad-browser` branch)
- [ ] 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.0-1-build1..upstream/mullvad-browser-102.7.0esr-12.5-1 base-browser-102.8.0esr-12.5-1-build1..HEAD`
- [x] Open MR for the `mullvad-browser` rebase
- [x] Merge
### **Sign and Tag**
- [x] Sign/Tag `HEAD` of the merged `mullvad-browser` branch:
- [ ] **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`ma1ma1