summaryrefslogtreecommitdiff
path: root/meson
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2021-08-31 12:21:02 +0200
committerFlorian Müllner <fmuellner@gnome.org>2021-09-04 23:46:46 +0200
commit418d86a16ff163657baf73b7215eb9fc7425fb7d (patch)
tree5064559ba9341c27cd8db6b81b097b1f245bf43e /meson
parent4d4f3d25d8da7197a8e5bec375acc486df650c77 (diff)
downloadgnome-shell-418d86a16ff163657baf73b7215eb9fc7425fb7d.tar.gz
build: Check NEWS for version
I don't think this ever happened to me, but it can't hurt enforcing that every release has a corresponding NEWS entry. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1968>
Diffstat (limited to 'meson')
-rwxr-xr-xmeson/check-version.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/meson/check-version.py b/meson/check-version.py
new file mode 100755
index 000000000..81750c990
--- /dev/null
+++ b/meson/check-version.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import os, sys
+from pathlib import Path
+import argparse, subprocess
+
+def check_version(version, file, type='news'):
+ if type == 'news':
+ line = file.open().readline()
+ ok = line.startswith(version)
+ print("{}: {}".format(file, "OK" if ok else "FAILED"))
+ if not ok:
+ raise Exception("{} does not start with {}".format(file, version))
+ elif type == 'metainfo':
+ subprocess.run(['appstream-util', 'validate-version', file, version],
+ check=True)
+ else:
+ raise Exception('Not implemented')
+
+parser = argparse.ArgumentParser(description='Check release version information.')
+parser.add_argument('--type', choices=['metainfo','news'], default='news')
+parser.add_argument('version', help='the version to check for')
+parser.add_argument('files', nargs='+', help='files to check')
+args = parser.parse_args()
+
+distroot = os.environ.get('MESON_DIST_ROOT', './')
+
+try:
+ for file in args.files:
+ check_version(args.version, Path(distroot, file), args.type)
+except:
+ sys.exit(1)