mirror of
https://github.com/kuhyx/wake-alarm.git
synced 2026-11-11 21:14:03 +01:00
**The two shared Python libraries were four minor versions behind and the gate could not see it.** They are PEP 508 direct references (`gatelock @ git+...@gatelock-v0.4.1`), which parsed as unpinned PyPI packages that do not exist on PyPI -- an undeterminable answer, not a stale one. utils@7a682a4 teaches the gate that shape; this repo is the first to benefit: gatelock v0.4.1 -> v0.7.2, crdt-sync v0.5.1 -> v0.9.1. The system install was already on 0.7.1/0.9.0, so only the manifests were adrift. Python side: bandit 1.7 -> 1.9.4, mypy 1 -> 2.3.1, pylint 3 -> 4.0.7, pytest 8 -> 9.1.1, pytest-cov 4 -> 7.1.0, pytest-randomly 3 -> 4.1.0, ruff 0.8 -> 0.16.5, python-kasa 0.7 -> 0.10.2, and the rest exact-pinned. Five majors and not one lint or type finding: `scripts/ci_mirror.sh` builds a clean venv from requirements.txt and runs the whole CI set, 465 tests at 100% branch coverage. phone_app takes crdt_sync_dart v0.11.1 and the flutter_secure_storage 11 chain (compileSdk 37 / AGP 9.3.2 / Gradle 9.7.1). 79 tests green, analyzer clean, release APK builds. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CRykabMwPgDzFHcARoqpaK
35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ============================================================================
|
|
# Fail if any dependency in the commit is behind its ecosystem's newest stable.
|
|
#
|
|
# Thin delegate to the shared gate in ~/utils, which owns the registry
|
|
# adapters, the pre-release rules and the allowlist semantics. Copying that
|
|
# logic here is what lets one repo's idea of "current" drift from every other
|
|
# repo's -- so this script only locates the shared checker and forwards its
|
|
# arguments.
|
|
#
|
|
# Usage:
|
|
# scripts/check_dependency_freshness.sh <file> [<file> ...] # pre-commit
|
|
# scripts/check_dependency_freshness.sh --all --strict # CI
|
|
#
|
|
# Exit: 0 current | 1 behind | 2 allowlist wrong | 3 undeterminable (offline)
|
|
# ============================================================================
|
|
|
|
set -euo pipefail
|
|
|
|
readonly SHARED_GATE="${UTILS_ROOT:-$HOME/utils}/scripts/check_dependency_freshness.sh"
|
|
|
|
main() {
|
|
if [[ ! -x "$SHARED_GATE" ]]; then
|
|
echo "Error: shared dependency-freshness gate not found at $SHARED_GATE" >&2
|
|
echo " Clone github.com/kuhyx/utils to ~/utils, or set" >&2
|
|
echo " UTILS_ROOT to where it lives." >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec bash "$SHARED_GATE" "$@"
|
|
}
|
|
|
|
main "$@"
|