summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2023-09-07 07:00:41 -0400
committerGitHub <noreply@github.com>2023-09-07 07:00:41 -0400
commit7e98d382f9671d5b59599939b36c00fb8f955a87 (patch)
treed3e7407a3528210da54474d1d8992fc2b1e4a3ed
parentAdd back newsfile from #16258. (diff)
downloadsynapse-7e98d382f9671d5b59599939b36c00fb8f955a87.tar.xz
Support releasing on macOS. (#16266)
-rw-r--r--changelog.d/16266.misc1
-rwxr-xr-xscripts-dev/release.py46
2 files changed, 31 insertions, 16 deletions
diff --git a/changelog.d/16266.misc b/changelog.d/16266.misc
new file mode 100644
index 0000000000..ac594c4ac4
--- /dev/null
+++ b/changelog.d/16266.misc
@@ -0,0 +1 @@
+Update the release script to work on macOS.
diff --git a/scripts-dev/release.py b/scripts-dev/release.py
index 4ac8eaa889..74f41a40ec 100755
--- a/scripts-dev/release.py
+++ b/scripts-dev/release.py
@@ -244,11 +244,17 @@ def _prepare() -> None:
     else:
         debian_version = new_version
 
-    run_until_successful(
-        f'dch -M -v {debian_version} "New Synapse release {new_version}."',
-        shell=True,
-    )
-    run_until_successful('dch -M -r -D stable ""', shell=True)
+    if sys.platform == "darwin":
+        run_until_successful(
+            f"docker run --rm -v .:/synapse ubuntu:latest /synapse/scripts-dev/docker_update_debian_changelog.sh {new_version}",
+            shell=True,
+        )
+    else:
+        run_until_successful(
+            f'dch -M -v {debian_version} "New Synapse release {new_version}."',
+            shell=True,
+        )
+        run_until_successful('dch -M -r -D stable ""', shell=True)
 
     # Show the user the changes and ask if they want to edit the change log.
     synapse_repo.git.add("-u")
@@ -566,19 +572,27 @@ def _notify(message: str) -> None:
     # for this.
     click.echo(f"\a{message}")
 
+    app_name = "Synapse Release Script"
+
     # Try and run notify-send, but don't raise an Exception if this fails
     # (This is best-effort)
-    # TODO Support other platforms?
-    subprocess.run(
-        [
-            "notify-send",
-            "--app-name",
-            "Synapse Release Script",
-            "--expire-time",
-            "3600000",
-            message,
-        ]
-    )
+    if sys.platform == "darwin":
+        # See https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW224
+        subprocess.run(
+            f"""osascript -e 'display notification "{message}" with title "{app_name}"'""",
+            shell=True,
+        )
+    else:
+        subprocess.run(
+            [
+                "notify-send",
+                "--app-name",
+                app_name,
+                "--expire-time",
+                "3600000",
+                message,
+            ]
+        )
 
 
 @cli.command()