2026-04-21 20:03:14 -05:00
|
|
|
"""Sync plugin manifest versions to the repo's computed release semver."""
|
2026-04-24 15:33:30 +02:00
|
|
|
|
2026-04-21 20:03:14 -05:00
|
|
|
from __future__ import annotations
|
2026-04-24 15:33:30 +02:00
|
|
|
|
2026-04-21 20:03:14 -05:00
|
|
|
import subprocess
|
|
|
|
|
import sys
|
|
|
|
|
from pathlib import Path
|
2026-04-24 15:33:30 +02:00
|
|
|
|
2026-04-21 20:03:14 -05:00
|
|
|
ROOT = Path(__file__).resolve().parent.parent
|
|
|
|
|
if str(ROOT) not in sys.path:
|
|
|
|
|
sys.path.insert(0, str(ROOT))
|
2026-04-24 15:33:30 +02:00
|
|
|
|
2026-04-21 20:03:14 -05:00
|
|
|
from headroom.release_version import ( # noqa: E402
|
|
|
|
|
compute_release_version,
|
|
|
|
|
determine_bump_level,
|
|
|
|
|
find_latest_release_tag,
|
|
|
|
|
get_canonical_version,
|
|
|
|
|
list_release_commits,
|
|
|
|
|
list_release_tags,
|
|
|
|
|
)
|
2026-04-24 15:33:30 +02:00
|
|
|
|
|
|
|
|
|
2026-04-21 20:03:14 -05:00
|
|
|
def compute_repo_semver(root: Path) -> str:
|
|
|
|
|
"""Return the npm-style semver for the repo's next release."""
|
|
|
|
|
tags = list_release_tags(root)
|
|
|
|
|
previous_tag = find_latest_release_tag(tags) or ""
|
|
|
|
|
level = determine_bump_level(list_release_commits(root, previous_tag))
|
|
|
|
|
info = compute_release_version(
|
|
|
|
|
canonical_version=get_canonical_version(root),
|
|
|
|
|
level=level,
|
|
|
|
|
tags=tags,
|
|
|
|
|
)
|
|
|
|
|
return info.npm_version
|
2026-04-24 15:33:30 +02:00
|
|
|
|
|
|
|
|
|
2026-04-21 20:03:14 -05:00
|
|
|
def main() -> None:
|
|
|
|
|
root = ROOT
|
|
|
|
|
version = compute_repo_semver(root)
|
|
|
|
|
subprocess.run(
|
|
|
|
|
[
|
|
|
|
|
sys.executable,
|
|
|
|
|
str(root / "scripts" / "version-sync.py"),
|
|
|
|
|
"--root",
|
|
|
|
|
str(root),
|
|
|
|
|
"--version",
|
|
|
|
|
version,
|
|
|
|
|
"--plugin-manifests-only",
|
|
|
|
|
],
|
|
|
|
|
cwd=root,
|
|
|
|
|
check=True,
|
|
|
|
|
)
|
2026-04-24 15:33:30 +02:00
|
|
|
|
|
|
|
|
|
2026-04-21 20:03:14 -05:00
|
|
|
if __name__ == "__main__":
|
|
|
|
|
main()
|