[tbb-commits] [Git][tpo/applications/tor-browser-build][main] Bug 40972: Tweaks to the changelog script for MB and group projects
Pier Angelo Vendrame (@pierov)
git at gitlab.torproject.org
Tue Oct 3 17:53:42 UTC 2023
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
d355fa8c by Pier Angelo Vendrame at 2023-10-03T19:48:02+02:00
Bug 40972: Tweaks to the changelog script for MB and group projects
The changelog script works well also with Mullvad Browser, but there
are a few changes we need to do every time we use it for MB instead of
TBB.
With this commit we automate them.
In addition to that, we group items by project, as it makes reading the
changelog easier.
- - - - -
1 changed file:
- tools/fetch-changelogs.py
Changes:
=====================================
tools/fetch-changelogs.py
=====================================
@@ -2,6 +2,7 @@
from datetime import datetime
import enum
from pathlib import Path
+import re
import sys
import requests
@@ -11,6 +12,16 @@ GITLAB = "https://gitlab.torproject.org"
API_URL = f"{GITLAB}/api/v4"
PROJECT_ID = 473
+is_mb = False
+project_order = {
+ "tor-browser-spec": 0,
+ # Leave 1 free, so we can redefine mullvad-browser when needed.
+ "tor-browser": 2,
+ "tor-browser-build": 3,
+ "mullvad-browser": 4,
+ "rbm": 5,
+}
+
class Platform(enum.IntFlag):
WINDOWS = 8
@@ -27,6 +38,7 @@ class Issue:
self.project, self.number = (
j["references"]["full"].rsplit("/", 2)[-1].split("#")
)
+ self.number = int(self.number)
self.platform = 0
self.num_platforms = 0
if "Desktop" in j["labels"]:
@@ -43,9 +55,14 @@ class Issue:
self.platform |= Platform.LINUX
self.num_platforms += 1
if "Android" in j["labels"]:
- self.platform |= Platform.ANDROID
- self.num_platforms += 1
- if not self.platform:
+ if is_mb and self.num_platforms == 0:
+ raise Exception(
+ f"Android-only issue on Mullvad Browser: {j['references']['full']}!"
+ )
+ elif not is_mb:
+ self.platform |= Platform.ANDROID
+ self.num_platforms += 1
+ if not self.platform or (is_mb and self.platform == Platform.DESKTOP):
self.platform = Platform.ALL_PLATFORMS
self.num_platforms = 4
self.is_build = "Build System" in j["labels"]
@@ -68,7 +85,9 @@ class Issue:
return f"Bug {self.number}: {self.title} [{self.project}]"
def __lt__(self, other):
- return self.number < other.number
+ if self.project == other.project:
+ return self.number < other.number
+ return project_order[self.project] < project_order[other.project]
def sorted_issues(issues):
@@ -125,7 +144,7 @@ elif len(issues) > 1:
sys.exit(4)
else:
iid = version
- version = None
+ version = "CHANGEME!"
if iid[0] == "#":
iid = iid[1:]
try:
@@ -136,6 +155,9 @@ else:
)
if r.ok and r.json():
issue = r.json()[0]
+ version_match = re.search(r"\b[0-9]+\.[.0-9a]+\b", issue["title"])
+ if version_match:
+ version = version_match.group()
except ValueError:
pass
if not issue:
@@ -143,6 +165,9 @@ if not issue:
"Release preparation issue not found. Please make sure it has ~Release Prep."
)
sys.exit(5)
+if "Sponsor 131" in issue["labels"]:
+ is_mb = True
+ project_order["mullvad-browser"] = 1
iid = issue["iid"]
linked = {}
@@ -159,8 +184,9 @@ for i in r.json():
linked = sorted_issues(linked)
linked_build = sorted_issues(linked_build)
+name = "Mullvad" if is_mb else "Tor"
date = datetime.now().strftime("%B %d %Y")
-print(f"Tor Browser {version} - {date}")
+print(f"{name} Browser {version} - {date}")
for issues in linked:
print(f" * {issues[0].get_platforms()}")
for i in issues:
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d355fa8c969a3e09e5b62b5644f0dad2d9e52619
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d355fa8c969a3e09e5b62b5644f0dad2d9e52619
You're receiving this email because of your account on gitlab.torproject.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tbb-commits/attachments/20231003/5688122a/attachment-0001.htm>
More information about the tbb-commits
mailing list