commit 4944e8b74bf26ef0485ad7e7b3f717c8de20d0ac
parent f07988be5adde725c7e5ce5349a3708c255185bf
Author: mtmn <miro@haravara.org>
Date: Tue, 23 Jun 2026 13:26:59 +0200
bazel: update hue gems, module-dep-check script
Diffstat:
4 files changed, 86 insertions(+), 38 deletions(-)
diff --git a/bazel/bazel_dep_update.py b/bazel/bazel_dep_update.py
@@ -1,16 +0,0 @@
-import json
-from urllib.request import urlopen
-
-deps = []
-for line in open("MODULE.bazel"):
- if "bazel_dep(" not in line:
- continue
- name = line.split("name")[1].split('"')[1]
- ver = line.split("version")[1].split('"')[1]
- deps.append((name, ver))
-for name, cur in deps:
- latest = json.loads(
- urlopen(f"https://bcr.bazel.build/modules/{name}/metadata.json").read()
- )["versions"][-1]
- if latest != cur:
- print(f"{name}: {cur} → {latest}")
diff --git a/bazel/module-dep-check.sh b/bazel/module-dep-check.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+set -eu
+
+BCR_BASE_URL="https://bcr.bazel.build/modules"
+MODULE_FILE="MODULE.bazel"
+
+usage() {
+ cat <<EOF
+Usage: $(basename "$0") [OPTIONS]
+
+Check for outdated bazel_dep entries in MODULE.bazel.
+
+Options:
+ -f FILE Path to MODULE.bazel (default: MODULE.bazel)
+ -h Show this help message
+
+Exit codes:
+ 0 All dependencies are up to date
+ 1 One or more dependencies are outdated
+ 2 Usage error or missing file
+EOF
+}
+
+while getopts f:h opt; do
+ case "$opt" in
+ f) MODULE_FILE="$OPTARG" ;;
+ h)
+ usage
+ exit 0
+ ;;
+ *)
+ usage
+ exit 2
+ ;;
+ esac
+done
+
+if [ ! -f "$MODULE_FILE" ]; then
+ printf 'error: file not found: %s\n' "$MODULE_FILE" >&2
+ exit 2
+fi
+
+tmpdir=$(mktemp -d)
+trap 'rm -rf "$tmpdir"' EXIT
+
+deps=$(grep 'bazel_dep(' "$MODULE_FILE") || true
+[ -z "$deps" ] && exit 0
+
+printf '%s\n' "$deps" | sed -n 's/.*name *= *"\([^"]*\)".*version *= *"\([^"]*\)".*/\1 \2/p' | while read -r name cur; do
+ if [ -z "$name" ] || [ -z "$cur" ]; then
+ continue
+ fi
+ latest=$(curl -sf "${BCR_BASE_URL}/${name}/metadata.json" | jaq -r '.versions[-1]') || {
+ printf 'warn: failed to parse metadata for %s\n' "$name" >&2
+ continue
+ }
+ if [ "$latest" != "$cur" ]; then
+ printf '%s: %s -> %s\n' "$name" "$cur" "$latest"
+ touch "${tmpdir}/outdated"
+ fi
+done
+
+[ -f "${tmpdir}/outdated" ] && exit 1
+exit 0
diff --git a/hue/Gemfile.lock b/hue/Gemfile.lock
@@ -74,7 +74,7 @@ GEM
parser (3.3.11.1)
ast (~> 2.4.1)
racc
- pp (0.6.3)
+ pp (0.6.4)
prettyprint
prettyprint (0.2.0)
prism (1.9.0)
@@ -85,10 +85,10 @@ GEM
racc (1.8.1)
rainbow (3.1.1)
rake (13.4.2)
- rbi (0.3.13)
+ rbi (0.3.14)
prism (~> 1.0)
rbs (>= 4.0.1)
- rbs (4.0.2)
+ rbs (4.0.3)
logger
prism (>= 1.6.0)
tsort
@@ -153,17 +153,17 @@ GEM
simplecov_json_formatter (~> 0.1)
simplecov-html (0.13.2)
simplecov_json_formatter (0.1.4)
- sorbet (0.6.13303)
- sorbet-static (= 0.6.13303)
- sorbet-runtime (0.6.13303)
- sorbet-static (0.6.13303-x86_64-linux)
- sorbet-static-and-runtime (0.6.13303)
- sorbet (= 0.6.13303)
- sorbet-runtime (= 0.6.13303)
- spoom (1.7.16)
+ sorbet (0.6.13309)
+ sorbet-static (= 0.6.13309)
+ sorbet-runtime (0.6.13309)
+ sorbet-static (0.6.13309-x86_64-linux)
+ sorbet-static-and-runtime (0.6.13309)
+ sorbet (= 0.6.13309)
+ sorbet-runtime (= 0.6.13309)
+ spoom (1.8.1)
erubi (>= 1.10.0)
prism (>= 0.28.0)
- rbi (>= 0.3.3)
+ rbi (>= 0.3.14)
rbs (>= 4.0.0.dev.5)
rexml (>= 3.2.6)
sorbet-static-and-runtime (>= 0.5.10187)
@@ -247,7 +247,7 @@ CHECKSUMS
netrc (0.11.0) sha256=de1ce33da8c99ab1d97871726cba75151113f117146becbe45aa85cb3dabee3f
parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54
- pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
+ pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7
@@ -255,8 +255,8 @@ CHECKSUMS
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
- rbi (0.3.13) sha256=6afd53a574268abcc71daed4c025673561f27a990b3b087e7889e8b073ab2d7a
- rbs (4.0.2) sha256=af75671e66cd03434cc546622741ebf83f6197ec4328375805306330bf78ef25
+ rbi (0.3.14) sha256=932ed904adbb5ca645c285c8b36da1b7ff6321ec1870d187d6325248cb637658
+ rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14
rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1
regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
@@ -278,11 +278,11 @@ CHECKSUMS
simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
- sorbet (0.6.13303) sha256=92d548c3e1a2b544d8f343e208cb5e33386396ac0b9dd87e96283ca3290426c7
- sorbet-runtime (0.6.13303) sha256=d4f0d8a754842f4fceb8fb7aaa589bb41ff57035088c498f29f0b91207830ff0
- sorbet-static (0.6.13303-x86_64-linux) sha256=bebc4ae059661618cd376c706a68d84d5743cac65d28fd6a001e2600cd9111d6
- sorbet-static-and-runtime (0.6.13303) sha256=2d0c444c233d01dc0132a5c4b872d38cdb1aa328c80153aa80f33a6befb0e908
- spoom (1.7.16) sha256=b6033d1aaede800ef37505474d260d57a02fa63364b4725ea40b6f606e932d59
+ sorbet (0.6.13309) sha256=341f744180ede02e555d2b9bf5a0f79cdfdace5a932939e7549f1d0dc8e3cab9
+ sorbet-runtime (0.6.13309) sha256=3f950900f3d5b640d9baf291327f8ec13ef44552367342cf9eebaaf4a6539774
+ sorbet-static (0.6.13309-x86_64-linux) sha256=648c97749afd92328b1f47805ed3105c14c0871852dec5ecb22d947432b4564d
+ sorbet-static-and-runtime (0.6.13309) sha256=1c3c699dd862d21d438db031f7cec025e4f76bbc44940ca6d6eecbf5d72aeb7c
+ spoom (1.8.1) sha256=6abdc7852a3f33e0366e6fa712533496b28e2d0e79aa213b5b1aa246bebf2e8b
stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
tapioca (0.19.1) sha256=5de94d458950897ffe3d4e86a21eec48bb6a8775af85f80b1486b7ae7ba51823
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
diff --git a/justfile b/justfile
@@ -18,8 +18,8 @@ cargo-lockfile:
{{ cargo }} generate-lockfile
# Check `bazel_dep` versions against BCR for updates
-bazel-dep-update:
- python3 bazel/bazel_dep_update.py
+bazel-dep-check:
+ sh bazel/module-dep-check.sh
# Run `cargo check` (using bazel clippy aspect)
clippy +targets: