utils/dep_freshness
Krzysztof kuhy Rudnicki 3acf913b32
Some checks are pending
dependency freshness / dependencies on newest stable (push) Waiting to run
file length / file-length (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
palette drift / palette (push) Waiting to run
shared gate tests / gate unit tests (push) Waiting to run
dep_freshness: pool every Maven repo; resolve each host once; retry EAI_AGAIN
Three findings from proving the JitPack fix on the TachiyomiSY gate:

- The first repository with a stable answer used to win. Central still
  carries com.github.ben-manes:gradle-versions-plugin 0.11.1 (2016) while
  the plugin portal has 0.54.0, so a 0.51.0 pin graded "current". Every
  repository is now asked and the newest stable across the pooled lists is
  the answer.
- ~900 lookups, eight at a time, each resolving the registry host (A+AAAA)
  per connection: the LAN router's forwarder started dropping queries for
  every client on the LAN and the gate degraded itself. socket.getaddrinfo
  is memoised per (host, port, hints) for the run, and the per-host probe
  runs under a lock so eight workers make one probe, not eight.
- A resolver EAI_AGAIN ("temporary failure") during the probe marked the
  registry unreachable for the whole run. The probe retries it
  HTTP_ATTEMPTS times; a permanent failure still fails immediately.

Both retry loops lost their unreachable `return` sentinel (http.py is at
100% branch now); the resolver tests live in test_http_resolver.py to keep
test_http.py under the 250-line cap.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016P4KZw1E2sXJjYqfcZWf1x
2026-09-18 12:08:41 +02:00
..
parsers dep_freshness: ruff import order + drop unused test imports 2026-09-16 22:27:56 +02:00
registries dep_freshness: pool every Maven repo; resolve each host once; retry EAI_AGAIN 2026-09-18 12:08:41 +02:00
templates dep_freshness: read every *.versions.toml catalog, not only libs 2026-09-12 19:15:04 +02:00
tests dep_freshness: pool every Maven repo; resolve each host once; retry EAI_AGAIN 2026-09-18 12:08:41 +02:00
__init__.py Add the shared dependency-freshness gate 2026-08-28 13:00:35 +02:00
__main__.py Add the shared dependency-freshness gate 2026-08-28 13:00:35 +02:00
_tables.py dep_freshness: answer JitPack artifacts from the source repo's tags 2026-09-18 11:47:47 +02:00
allowlist.py dep_freshness: upstream: allowlist predicate for forks; Google API clients judged inside their generation 2026-09-12 20:32:34 +02:00
cache.py dep_freshness: gitcommit ecosystem, no-stable fallback, JitPack repo; report unknowns beside stale 2026-09-12 20:21:34 +02:00
check.py dep_freshness: upstream: allowlist predicate for forks; Google API clients judged inside their generation 2026-09-12 20:32:34 +02:00
constraints.py Add the shared dependency-freshness gate 2026-08-28 13:00:35 +02:00
discover.py dep_freshness: read every *.versions.toml catalog, not only libs 2026-09-12 19:15:04 +02:00
evaluate.py dep_freshness: upstream: allowlist predicate for forks; Google API clients judged inside their generation 2026-09-12 20:32:34 +02:00
install_cli.py Script the gate rollout instead of hand-copying it into sixteen repos 2026-08-28 14:12:00 +02:00
install_main.py Script the gate rollout instead of hand-copying it into sixteen repos 2026-08-28 14:12:00 +02:00
install_precommit_ci.py Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 18:45:55 +02:00
install.py Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 18:45:55 +02:00
models.py dep_freshness: upstream: allowlist predicate for forks; Google API clients judged inside their generation 2026-09-12 20:32:34 +02:00
quarantine.py Make the allowlist inheritable, and cache the quarantine lookups 2026-08-28 13:58:44 +02:00
report.py dep_freshness: upstream: allowlist predicate for forks; Google API clients judged inside their generation 2026-09-12 20:32:34 +02:00
resolve.py dep_freshness: gitcommit ecosystem, no-stable fallback, JitPack repo; report unknowns beside stale 2026-09-12 20:21:34 +02:00
upstream.py dep_freshness: upstream: allowlist predicate for forks; Google API clients judged inside their generation 2026-09-12 20:32:34 +02:00
versions.py dep_freshness: upstream: allowlist predicate for forks; Google API clients judged inside their generation 2026-09-12 20:32:34 +02:00