[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