aboutsummaryrefslogtreecommitdiff
path: root/scripts/test_changelog.py
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-08-18 22:39:38 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-08-18 22:39:38 +0300
commit9fac51722653fa0b0b6a5786166fb18c763424e0 (patch)
treea8efd3b30cf29a8fb11138b7444bb9baa0dac2fa /scripts/test_changelog.py
parent0bd445020ea19e0cea13f42a28212db7b2df196d (diff)
feat: make Windows generally available
Diffstat (limited to 'scripts/test_changelog.py')
-rw-r--r--scripts/test_changelog.py50
1 files changed, 35 insertions, 15 deletions
diff --git a/scripts/test_changelog.py b/scripts/test_changelog.py
index ad384734..6a9d12dd 100644
--- a/scripts/test_changelog.py
+++ b/scripts/test_changelog.py
@@ -24,20 +24,33 @@ from scripts.changelog import (
)
+def release_assets(version: str) -> dict[str, str]:
+ normalized = version.removeprefix("v")
+ return {
+ **default_release_assets(normalized),
+ "windows-x86_64": f"https://github.com/herdrdev/herdr/releases/download/v{normalized}/herdr-windows-x86_64.zip",
+ }
+
+
def release_sha256() -> dict[str, str]:
return {
"linux-x86_64": "a" * 64,
"linux-aarch64": "b" * 64,
"macos-x86_64": "c" * 64,
"macos-aarch64": "d" * 64,
+ "windows-x86_64": "e" * 64,
}
def release_assets_with_digests() -> list[dict[str, str]]:
return [
{
- "name": f"herdr-{target}",
- "url": f"https://example.com/{target}",
+ "name": (
+ "herdr-windows-x86_64.zip"
+ if target == "windows-x86_64"
+ else f"herdr-{target}"
+ ),
+ "url": f"https://example.com/{target}{'.zip' if target == 'windows-x86_64' else ''}",
"digest": f"sha256:{digest * 64}",
}
for target, digest in (
@@ -45,6 +58,7 @@ def release_assets_with_digests() -> list[dict[str, str]]:
("linux-aarch64", "b"),
("macos-x86_64", "c"),
("macos-aarch64", "d"),
+ ("windows-x86_64", "e"),
)
]
@@ -79,7 +93,7 @@ class ChangelogScriptTests(unittest.TestCase):
build_latest_json(
"0.1.1",
"\n### Fixed\n- One\n\n",
- default_release_assets("0.1.1"),
+ release_assets("0.1.1"),
release_sha256(),
)
)
@@ -92,7 +106,7 @@ class ChangelogScriptTests(unittest.TestCase):
build_latest_json(
"v0.1.1",
"### Fixed\n- Smoothed Claude flapping.\n",
- default_release_assets("0.1.1"),
+ release_assets("0.1.1"),
release_sha256(),
)
)
@@ -107,6 +121,7 @@ class ChangelogScriptTests(unittest.TestCase):
"linux-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.1.1/herdr-linux-aarch64",
"macos-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.1.1/herdr-macos-x86_64",
"macos-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.1.1/herdr-macos-aarch64",
+ "windows-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.1.1/herdr-windows-x86_64.zip",
},
)
self.assertEqual(manifest["releases"]["0.1.1"]["assets"], manifest["assets"])
@@ -118,7 +133,7 @@ class ChangelogScriptTests(unittest.TestCase):
build_latest_json(
"0.1.1",
"### Fixed\n- One",
- default_release_assets("0.1.1"),
+ release_assets("0.1.1"),
release_sha256(),
announcement={"id": "keybinding-v2", "title": "Keybind Refactor", "body": "body"},
)
@@ -138,7 +153,7 @@ class ChangelogScriptTests(unittest.TestCase):
build_latest_json(
"0.1.2",
"### Fixed\n- Two",
- default_release_assets("0.1.2"),
+ release_assets("0.1.2"),
release_sha256(),
releases={"0.1.1": {"notes": "### Fixed\n- One"}},
)
@@ -147,7 +162,7 @@ class ChangelogScriptTests(unittest.TestCase):
self.assertEqual(list(manifest["releases"]), ["0.1.2", "0.1.1"])
self.assertEqual(manifest["releases"]["0.1.2"]["notes"], "### Fixed\n- Two")
self.assertEqual(manifest["releases"]["0.1.2"]["protocol"], read_protocol_version())
- self.assertEqual(manifest["releases"]["0.1.2"]["assets"], default_release_assets("0.1.2"))
+ self.assertEqual(manifest["releases"]["0.1.2"]["assets"], release_assets("0.1.2"))
self.assertEqual(manifest["releases"]["0.1.1"]["notes"], "### Fixed\n- One")
self.assertEqual(manifest["releases"]["0.1.1"]["assets"], default_release_assets("0.1.1"))
@@ -157,7 +172,7 @@ class ChangelogScriptTests(unittest.TestCase):
build_latest_json(
"0.1.2",
"### Fixed\n- Two",
- default_release_assets("0.1.2"),
+ release_assets("0.1.2"),
release_sha256(),
releases={"0.1.1": {"notes": "### Fixed\n- One", "assets": assets}},
)
@@ -170,7 +185,7 @@ class ChangelogScriptTests(unittest.TestCase):
build_latest_json(
"0.1.2",
"### Fixed\n- Two",
- default_release_assets("0.1.2"),
+ release_assets("0.1.2"),
release_sha256(),
releases={"0.1.1": {"notes": "### Fixed\n- One", "protocol": 7}},
)
@@ -183,7 +198,7 @@ class ChangelogScriptTests(unittest.TestCase):
build_latest_json(
"0.1.2",
"### Fixed\n- Two",
- default_release_assets("0.1.2"),
+ release_assets("0.1.2"),
release_sha256(),
releases={
"0.1.1": {
@@ -337,6 +352,7 @@ class ChangelogScriptTests(unittest.TestCase):
"linux-aarch64": "https://example.com/linux-aarch64",
"macos-x86_64": "https://example.com/macos-x86_64",
"macos-aarch64": "https://example.com/macos-aarch64",
+ "windows-x86_64": "https://example.com/windows-x86_64.zip",
},
"sha256": release_sha256(),
},
@@ -426,6 +442,7 @@ class ChangelogScriptTests(unittest.TestCase):
"linux-aarch64": "https://example.com/linux-aarch64",
"macos-x86_64": "https://example.com/macos-x86_64",
"macos-aarch64": "https://example.com/macos-aarch64",
+ "windows-x86_64": "https://example.com/windows-x86_64.zip",
},
"sha256": release_sha256(),
}
@@ -438,6 +455,7 @@ class ChangelogScriptTests(unittest.TestCase):
"linux-aarch64": "https://example.com/linux-aarch64",
"macos-x86_64": "https://example.com/macos-x86_64",
"macos-aarch64": "https://example.com/macos-aarch64",
+ "windows-x86_64": "https://example.com/windows-x86_64.zip",
},
"sha256": release_sha256(),
}
@@ -446,7 +464,7 @@ class ChangelogScriptTests(unittest.TestCase):
self.assertEqual(canonical, expected)
def test_current_release_assets_must_be_mirrored(self) -> None:
- assets = default_release_assets("0.1.1")
+ assets = release_assets("0.1.1")
ensure_current_release_assets_are_mirrored(
{
"version": "0.1.1",
@@ -472,12 +490,12 @@ class ChangelogScriptTests(unittest.TestCase):
"version": "0.1.1",
"protocol": read_protocol_version(),
"notes": "### Fixed\n- One",
- "assets": default_release_assets("0.1.1"),
+ "assets": release_assets("0.1.1"),
"sha256": release_sha256(),
"releases": {
"0.1.1": {
"notes": "### Fixed\n- One",
- "assets": default_release_assets("0.1.0"),
+ "assets": release_assets("0.1.0"),
"sha256": release_sha256(),
}
},
@@ -497,6 +515,7 @@ class ChangelogScriptTests(unittest.TestCase):
"linux-aarch64": "https://example.com/linux-aarch64",
"macos-x86_64": "https://example.com/macos-x86_64",
"macos-aarch64": "https://example.com/macos-aarch64",
+ "windows-x86_64": "https://example.com/windows-x86_64.zip",
},
"sha256": release_sha256(),
},
@@ -509,6 +528,7 @@ class ChangelogScriptTests(unittest.TestCase):
"linux-aarch64": "https://example.com/linux-aarch64",
"macos-x86_64": "https://example.com/macos-x86_64",
"macos-aarch64": "https://example.com/macos-aarch64",
+ "windows-x86_64": "https://example.com/windows-x86_64.zip",
},
"sha256": release_sha256(),
},
@@ -531,14 +551,14 @@ class ChangelogScriptTests(unittest.TestCase):
"version": "0.1.1",
"protocol": read_protocol_version() + 1,
"notes": "### Fixed\n- One",
- "assets": default_release_assets("0.1.1"),
+ "assets": release_assets("0.1.1"),
"sha256": release_sha256(),
}
expected = {
"version": "0.1.1",
"protocol": read_protocol_version(),
"notes": "### Fixed\n- One",
- "assets": default_release_assets("0.1.1"),
+ "assets": release_assets("0.1.1"),
"sha256": release_sha256(),
}