wartung: Hermes-Update für den neuen Paketmanager von Hermes
Das Hermes-Update vom 25.09. scheiterte halb: neuer Code geholt, dann baute python-olm (Matrix-Extra) nicht – CMake 4 und kein clang auf der Box. MC2 startete das Gateway ohne daemon-reload neu, es lief weiter aus dem alten venv (neuer Code, alte Pakete), und die Übersicht zeigte „v0.0.0 · Aktuell“. - Update über Hermes' eigenen Starter (.hermes/bin/hermes), gebaut mit CC=gcc CXX=g++ CMAKE_POLICY_VERSION_MINIMUM=3.5, doctor-Hinweise nicht fatal, daemon-reload vor dem Neustart. - deploy/hermes-plugin-deps.sh legt trafilatura (mc2-web-lesen) in Hermes' aktive Umgebung. - Version: bei „0.0.0“ in der pyproject das Commit-Datum im Stil der neuen Tags. - Ehrliche Meldung „UNVOLLSTÄNDIG“, wenn der Code schon neu ist. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
17d4ee3ea8
commit
28888890ec
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
# hermes-plugin-deps.sh — die Pakete unserer Hermes-Plugins in Hermes' aktive Umgebung legen (seit 25.09.2026).
|
||||
#
|
||||
# Seit seinem neuen Paketmanager (`hermes pm`) läuft Hermes in einer eigenen Umgebung unter
|
||||
# ~/.hermes/installs/<id>/environments/<id>/venv (Python aus ~/.hermes/tools). Jedes Update kann sie neu bauen —
|
||||
# ohne unsere Zusätze. mc2-web-lesen braucht trafilatura (ohne liest es Seiten nur grob).
|
||||
# Welche Umgebung aktiv ist, sagt Hermes' eigener Starter (hermes_bootstrap). Ohne Paketmanager: nichts zu tun.
|
||||
# Läuft nach jedem Hermes-Update (maintenance._hermes_update_cmd); von Hand: bash deploy/hermes-plugin-deps.sh
|
||||
set -uo pipefail
|
||||
HA="${HERMES_AGENT:-$HOME/.hermes/hermes-agent}"
|
||||
PY="$(ls -d "$HOME"/.hermes/tools/python-3*/bin/python3 2>/dev/null | sort -V | tail -n 1)"
|
||||
UV="$(ls -d "$HOME"/.hermes/tools/uv-*/uv 2>/dev/null | sort -V | tail -n 1)"
|
||||
PAKETE=(trafilatura)
|
||||
|
||||
if [ ! -x "$PY" ] || [ ! -x "$UV" ] || [ ! -f "$HA/hermes_bootstrap.py" ]; then
|
||||
echo "hermes-plugin-deps: Hermes ohne eigenen Paketmanager — nichts zu tun."
|
||||
exit 0
|
||||
fi
|
||||
UMGEBUNG="$(cd /tmp && HERMES_HOME="$HOME/.hermes" "$PY" -I -c "
|
||||
import sys
|
||||
sys.path.insert(0, '$HA')
|
||||
import hermes_bootstrap
|
||||
print(next(p for p in sys.path if p.endswith('site-packages') and '/environments/' in p).split('/lib/')[0])
|
||||
" 2>/dev/null)"
|
||||
if [ -z "$UMGEBUNG" ] || [ ! -x "$UMGEBUNG/bin/python" ]; then
|
||||
echo "hermes-plugin-deps: Hermes' aktive Umgebung nicht gefunden." >&2
|
||||
exit 1
|
||||
fi
|
||||
if "$UMGEBUNG/bin/python" -c "import trafilatura" 2>/dev/null; then
|
||||
echo "hermes-plugin-deps: alles da ($UMGEBUNG)."
|
||||
exit 0
|
||||
fi
|
||||
echo "hermes-plugin-deps: lege ${PAKETE[*]} in $UMGEBUNG …"
|
||||
UV_CACHE_DIR="$HOME/.hermes/cache/uv" "$UV" pip install --python "$UMGEBUNG/bin/python" "${PAKETE[@]}"
|
||||
Reference in New Issue
Block a user