diff --git a/tests/test_sync_deployment_tools.py b/tests/test_sync_deployment_tools.py index b061167..c1d6de1 100644 --- a/tests/test_sync_deployment_tools.py +++ b/tests/test_sync_deployment_tools.py @@ -78,9 +78,10 @@ class DeploymentToolsTest(unittest.TestCase): inventory = json.loads((output / "candidate-inventory.json").read_text()) self.assertEqual(inventory["product_version"], "0.1.7") self.assertEqual(inventory["desktop_schema"], 37) - self.assertEqual(inventory["android_schema"], 32) + self.assertEqual(inventory["android_schema"], 34) self.assertIn("session-preparations-v2", inventory["protocols"]) self.assertIn("programs-v1", inventory["protocols"]) + self.assertIn("programs-v2", inventory["protocols"]) self.assertIn("program-executions-v1", inventory["protocols"]) self.assertIn("sleep-diary-v2", inventory["protocols"]) self.assertIn("cardio-sessions-v1", inventory["protocols"]) diff --git a/tools/package_sync_candidate.py b/tools/package_sync_candidate.py index 5707d1f..193e356 100644 --- a/tools/package_sync_candidate.py +++ b/tools/package_sync_candidate.py @@ -82,6 +82,12 @@ def main() -> int: raise RuntimeError("compiled generation MTP adapter is missing") if not sync_once.is_file(): raise RuntimeError("compiled legacy synchronization helper is missing") + build_options = json.loads(subprocess.check_output( + ["meson", "introspect", "--buildoptions", str(args.build)], text=True + )) + web = next((option["value"] for option in build_options if option["name"] == "web"), None) + if web != "enabled": + raise RuntimeError("candidate requires an explicitly embedded Web frontend") (args.output / "bin").mkdir(parents=True) (args.output / "libexec").mkdir(parents=True) (args.output / "tools").mkdir(parents=True) @@ -122,7 +128,7 @@ def main() -> int: ).strip(), "product_version": "0.1.7", "desktop_schema": 37, - "android_schema": 32, + "android_schema": 34, "protocols": [ "mobile-export-v3", "mobile-history-v4", @@ -136,6 +142,7 @@ def main() -> int: "session-preparations-v2", "ai-session-drafts-v2", "programs-v1", + "programs-v2", "program-executions-v1", "sleep-diary-v2", "cardio-sessions-v1",