Viewing is open to everyone. Downloading and starring need a GitHub sign-in. Sign in with GitHub

bump_version.py

v0.1.0-build.85 Latest Commit ede38f5

Size
1.3 KB
Lines
32
Language
python
SHA-256
da91e27d0d08…
View on GitHub

Sign in with GitHub to download. Each download is recorded with your GitHub username.

1#!/usr/bin/env python3
2"""Bump the build number in every versioned file (CONTRIBUTING_VERSIONING.md).
3
4 tools/bump_version.py # 0.1.0-build.N -> 0.1.0-build.N+1
5 tools/bump_version.py --check # list the files that carry the version
6
7The changelog entry is still written by hand; tools/check_version.py fails
8until its top heading matches.
9"""
10import re
11import sys
12from pathlib import Path
13
14root = Path(__file__).resolve().parents[1]
15FILES = [
16 "VERSION", "CONTEXT.md", "include/ckey/ckey.h", "tests/vectors/locator-v14.json",
17 "ios/README.md", "macos/README.md", "docs/support-matrix.json",
18 "sdk/web/package.json", "sdk/android/gradle.properties", "sdk/dotnet/README.md",
19 "sdk/android/README.md", "sdk/swift/README.md", "sdk/web/README.md", "README.md",
20]
21old = (root / "VERSION").read_text().strip()
22m = re.fullmatch(r"(\d+\.\d+\.\d+)-build\.(\d+)", old)
23if not m:
24 sys.exit(f"VERSION {old!r} is not of the form X.Y.Z-build.N")
25present = [f for f in FILES if (root / f).exists() and old in (root / f).read_text()]
26if "--check" in sys.argv:
27 print("\n".join(present)); sys.exit(0)
28new = f"{m.group(1)}-build.{int(m.group(2)) + 1}"
29for f in present:
30 p = root / f
31 p.write_text(p.read_text().replace(old, new))
32print(f"{old} -> {new} in {len(present)} files:\n " + "\n ".join(present))