headroom/scripts/sync-plugin-versions.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

56 lines
1.3 KiB
Python
Raw Permalink Normal View History

"""Sync plugin manifest versions to the repo's computed release semver."""
from __future__ import annotations
import subprocess
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
if str(ROOT) not in sys.path:
sys.path.insert(0, str(ROOT))
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,
)
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
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,
)
if __name__ == "__main__":
main()