From cd36d98fc727e40391f4141a9df0b98f8eb51aba Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 7 Apr 2025 21:25:41 +0200 Subject: [PATCH] chore: small tool to check latest library versions --- .docker/check_lib_versions.py | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 .docker/check_lib_versions.py diff --git a/.docker/check_lib_versions.py b/.docker/check_lib_versions.py new file mode 100755 index 00000000..12f6b824 --- /dev/null +++ b/.docker/check_lib_versions.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +import requests + +# List of GitHub repositories in 'author/project' format +repositories = [ + "libarchive/libarchive", + "xiph/flac", + "libunwind/libunwind", + "google/benchmark", + "openssl/openssl", + "jeremy-rifkin/cpptrace", + "google/double-conversion", + "fmtlib/fmt", + "google/glog", + "Cyan4973/xxHash", + "lz4/lz4", + "google/brotli", + "facebook/zstd", + "libfuse/libfuse", +] + +# Function to fetch the latest release information for a repository +def get_latest_release(repo): + url = f"https://api.github.com/repos/{repo}/releases/latest" + response = requests.get(url) + + if response.status_code == 200: + release = response.json() + tag_name = release['tag_name'] + release_date = release['published_at'] + return tag_name, release_date + else: + print(f"Failed to fetch data for {repo}") + return None, None + +# Fetch the latest release information for each repository +for repo in repositories: + version, release_date = get_latest_release(repo) + if version and release_date: + [author, project] = repo.split('/') + date = release_date.split('T')[0] + version = version.replace(f"{project}-", "").lstrip('v') + project = project.replace('-', '_').upper() + version_var = f"{project}_VERSION={version}" + print(f"{version_var:<40} # {date}")