From 4d71f26d8b6dbe077e9e33dfb96e812f479e04db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=81=E6=A0=91=E4=BA=BA?= Date: Mon, 31 Mar 2025 08:53:19 +0900 Subject: [PATCH] chore: add script to bump all versions --- .gitignore | 2 ++ .idea/lib_um_crypto.iml | 7 +++++++ .idea/misc.xml | 6 ++++++ bump_versions.py | 44 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 .idea/misc.xml create mode 100644 bump_versions.py diff --git a/.gitignore b/.gitignore index e4541e7..2c681dd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ pkg-*/ node_modules/ .pnpm-store *.local +venv +.venv diff --git a/.idea/lib_um_crypto.iml b/.idea/lib_um_crypto.iml index 3ac3b73..1a5bffc 100644 --- a/.idea/lib_um_crypto.iml +++ b/.idea/lib_um_crypto.iml @@ -1,5 +1,10 @@ + + + + + @@ -20,8 +25,10 @@ + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8523ab8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/bump_versions.py b/bump_versions.py new file mode 100644 index 0000000..fcd2197 --- /dev/null +++ b/bump_versions.py @@ -0,0 +1,44 @@ +import argparse +import glob +import re +from typing import Generator + + +def parse_version(text: str) -> str: + re_version = re.compile(r'^\d+\.\d+\.\d+(-[-a-zA-Z\d]*)?$') + if not re_version.match(text): + raise argparse.ArgumentTypeError(f"Invalid version format: '{text}'") + return text + +def iter_cargo_toml_paths() -> Generator[str, None, None]: + yield "um_audio/Cargo.toml" + yield "um_wasm/Cargo.toml" + yield "um_cli/Cargo.toml" + for p in glob.iglob("um_crypto/*/Cargo.toml", recursive=False): + yield p + +def re_replace_file(path: str, regex: re.Pattern, replacement: str) -> None: + print(f"Bumping {path}...") + with open(path, "r", encoding='utf-8') as f: + content = f.read() + content = regex.sub(replacement, content, 1) + with open(path, "w", encoding='utf-8', newline='\n') as f: + f.write(content) + +def main(): + parser = argparse.ArgumentParser (description="Bump versions") + parser.add_argument("version", type=parse_version, help="Version to bump to") + args = parser.parse_args() + + re_toml_version = re.compile(r'^\s*(version|"version"|\'version\')\s*=\s*.*$', re.MULTILINE) + re_json_version = re.compile(r'^(\s*)"version"\s*:\s*".*?"\s*(,)?\s*$', re.MULTILINE) + + for path in iter_cargo_toml_paths(): + re_replace_file(path, re_toml_version, f'version = "{args.version}"') + re_replace_file("um_wasm_loader/package.json", re_json_version, fr'\1"version": "{args.version}"\2') + + + +if __name__ == "__main__": + main() +