libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 6414e8c626793304dae40c08bbe6a9e0219266b6
parent 894a691e928001f00632a056d30d5e26772382cc
Author: Florian Dold <florian@dold.me>
Date:   Tue, 22 Oct 2024 10:49:28 +0200

script for version bumping

Diffstat:
Acontrib/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)