commit 6414e8c626793304dae40c08bbe6a9e0219266b6
parent 894a691e928001f00632a056d30d5e26772382cc
Author: Florian Dold <florian@dold.me>
Date: Tue, 22 Oct 2024 10:49:28 +0200
script for version bumping
Diffstat:
| A | contrib/bump-version | | | 75 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 75 insertions(+), 0 deletions(-)
diff --git a/contrib/bump-version b/contrib/bump-version
@@ -0,0 +1,75 @@
+#!/usr/bin/env python3
+
+import sys
+import re
+import argparse
+import subprocess
+import textwrap
+
+def shget(cmd):
+ return subprocess.run(cmd, shell=True, encoding="utf-8", capture_output=True).stdout.strip()
+
+
+parser = argparse.ArgumentParser(
+ description="Bump the libeufin version.")
+
+parser.add_argument("new_version")
+parser.add_argument("--dry", action="store_true")
+
+args = parser.parse_args()
+
+new_version = args.new_version
+dry = args.dry
+
+version = sys.argv[1]
+
+# Bump version of "debian/changelog"
+
+with open("debian/changelog") as deb_changelog:
+ while True:
+ line = deb_changelog.readline()
+ if line == "":
+ break
+ if line.strip() == "":
+ continue
+ m = re.match(r".*\((.*)\).*", line)
+ break
+
+deb_current_version = m.group(1)
+deb_bump = " [!]" if deb_current_version != version else ""
+
+print(f"debian/control: {deb_current_version} -> {version}{deb_bump}")
+
+if not dry and deb_current_version != version:
+ name = shget("git config user.name")
+ email = shget("git config user.email")
+ date = shget("date -R")
+ entry_r = f"""\
+ libeufin ({new_version}) unstable; urgency=low
+
+ * Release version {new_version}
+
+ -- {name} <{email}> {date}
+ """
+ entry = textwrap.dedent(entry_r)
+ with open("debian/changelog") as f:
+ old_changelog = f.read()
+ new_changelog = entry + "\n" + old_changelog
+ with open("debian/changelog", "w") as f:
+ f.write(new_changelog)
+
+# Bump version in build.gradle
+
+with open("build.gradle") as f:
+ contents = f.read()
+gradle_pat = r'version.*=.*"(.*)"'
+m = re.search(gradle_pat, contents)
+gradle_current_version = m.group(1)
+
+new_contents = re.sub(gradle_pat, f'version = "{new_version}"', contents)
+gradle_bump = " [!]" if gradle_current_version != version else ""
+print(f"build.gradle: {gradle_current_version} -> {version}{gradle_bump}")
+
+if not dry:
+ with open("build.gradle", "w") as f:
+ f.write(new_contents)