Verified Commit 84e2ad6a authored by Pier Angelo Vendrame's avatar Pier Angelo Vendrame 🎃
Browse files

Bug 41310: 13.5-specific fixes for relprep.py.

When I wrote relprep.py, I did not think about a legacy channel, as we
never had one before.
Our approach was to keep everything to build releases as stable, so we
decided to comment or remove the undesired functionalities rather than
implementing a legacy channel in the script.
parent bf089520
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
# vim: filetype=yaml sw=2
# To update, see doc/how-to-update-the-manual.txt
# Remember to update also the package's hash, with the version!
version: 222718
version: 210938
filename: 'manual-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
container:
  use_container: 1
@@ -23,6 +23,6 @@ input_files:
  - project: container-image
  - URL: 'https://build-sources.tbb.torproject.org/manual_[% c("version") %].zip'
    name: manual
    sha256sum: 051174ba012fa2241e865cc604658a0af116d3bbf9d02474025277fff1b34636
    sha256sum: eb83259f0525a14dae1a1c3944e1e5ac3a2f8111a42834ab0f401628c8a38791
  - filename: packagemanual.py
    name: package_script
+12 −32
Original line number Diff line number Diff line
@@ -21,12 +21,10 @@ class EntryType(enum.IntFlag):


class Platform(enum.IntFlag):
    WINDOWS = 8
    MACOS = 4
    LINUX = 2
    ANDROID = 1
    DESKTOP = 8 | 4 | 2
    ALL_PLATFORMS = 8 | 4 | 2 | 1
    WINDOWS = 2
    MACOS = 1
    DESKTOP = 2 | 1
    ALL_PLATFORMS = 2 | 1


class ChangelogEntry:
@@ -52,10 +50,6 @@ class ChangelogEntry:
            platforms.append("Windows")
        if self.platform & Platform.MACOS:
            platforms.append("macOS")
        if self.platform & Platform.LINUX:
            platforms.append("Linux")
        if self.platform & Platform.ANDROID:
            platforms.append("Android")
        return " + ".join(platforms)

    def __lt__(self, other):
@@ -78,15 +72,8 @@ class ChangelogEntry:

class UpdateEntry(ChangelogEntry):
    def __init__(self, name, version, is_mb):
        if name == "Firefox" and not is_mb:
            platform = Platform.DESKTOP
            num_platforms = 3
        elif name == "GeckoView" or name == "Zstandard":
            platform = Platform.ANDROID
            num_platforms = 1
        else:
        platform = Platform.ALL_PLATFORMS
            num_platforms = 4
        num_platforms = 2
        super().__init__(
            EntryType.UPDATE, platform, num_platforms, name == "Go", is_mb
        )
@@ -107,8 +94,8 @@ class Issue(ChangelogEntry):
        platform = 0
        num_platforms = 0
        if "Desktop" in j["labels"]:
            platform = Platform.DESKTOP
            num_platforms += 3
            platform = Platform.ALL_PLATFORMS
            num_platforms += 2
        else:
            if "Windows" in j["labels"]:
                platform |= Platform.WINDOWS
@@ -116,20 +103,13 @@ class Issue(ChangelogEntry):
            if "MacOS" in j["labels"]:
                platform |= Platform.MACOS
                num_platforms += 1
            if "Linux" in j["labels"]:
                platform |= Platform.LINUX
                num_platforms += 1
        if "Android" in j["labels"]:
            if is_mb and num_platforms == 0:
        if not platform:
            if "Android" in j["labels"] or "Linux" in j["labels"]:
                raise Exception(
                    f"Android-only issue on Mullvad Browser: {j['references']['full']}!"
                    f"The legacy channel should include only fixes for macOS and/or Windows, please check {self.project}#{self.number}."
                )
            elif not is_mb:
                platform |= Platform.ANDROID
                num_platforms += 1
        if not platform or (is_mb and platform == Platform.DESKTOP):
            platform = Platform.ALL_PLATFORMS
            num_platforms = 4
            num_platforms = 2
        is_build = "Build System" in j["labels"]
        super().__init__(
            EntryType.ISSUE, platform, num_platforms, is_build, is_mb
+10 −16
Original line number Diff line number Diff line
@@ -91,13 +91,10 @@ class ReleasePreparation:
        self.base_path = Path(repo_path)
        self.repo = Repo(self.base_path)

        self.tor_browser = bool(kwargs.get("tor_browser", True))
        self.mullvad_browser = bool(kwargs.get("mullvad_browser", True))
        if not self.tor_browser and not self.mullvad_browser:
            raise ValueError("Nothing to do")
        self.android = kwargs.get("android", self.tor_browser)
        if not self.tor_browser and self.android:
            raise ValueError("Only Tor Browser supports Android")
        # Legacy channel, always do Tor Browser desktop only.
        self.tor_browser = True
        self.mullvad_browser = False
        self.android = False

        logger.debug(
            "Tor Browser: %s; Mullvad Browser: %s; Android: %s",
@@ -140,7 +137,8 @@ class ReleasePreparation:
            # Do not update Go anymore: 1.21.x is not listed anymore in
            # the download page as it is EOL as of August 13, 2024.
            # self.update_go()
            self.update_manual()
            # Freeze the manual to before 14.0.
            # self.update_manual()

        self.update_changelogs()
        self.update_rbm_conf()
@@ -302,7 +300,6 @@ class ReleasePreparation:
        targets = ["base-browser"]
        if self.tor_browser:
            targets.append("tor-browser")
            targets.append("fenix")
        if self.mullvad_browser:
            targets.append("mullvad-browser")
        for i in targets:
@@ -520,6 +517,10 @@ class ReleasePreparation:
                        self.build_number,
                    )
                continue
            if version.major > self.version.major:
                # Ignore more recent version.
                # E.g., for the legacy channel.
                continue
            key = (project, version.channel)
            if key not in self.last_releases:
                self.last_releases[key] = []
@@ -697,8 +698,6 @@ if __name__ == "__main__":
        default=Path(__file__).parent.parent,
        help="Path to a tor-browser-build.git clone",
    )
    parser.add_argument("--tor-browser", action="store_true")
    parser.add_argument("--mullvad-browser", action="store_true")
    parser.add_argument(
        "--date",
        help="Release date and optionally time for changelog purposes. "
@@ -739,12 +738,7 @@ if __name__ == "__main__":
    )
    logger.addHandler(ch)

    tbb = bool(args.tor_browser)
    mb = bool(args.mullvad_browser)
    kwargs = {}
    if tbb or mb:
        kwargs["tor_browser"] = tbb
        kwargs["mullvad_browser"] = mb
    if args.date:
        try:
            kwargs["changelog_date"] = datetime.fromisoformat(args.date)