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
@@ -68,6 +68,33 @@ def test_hermes_version_auch_wenn_der_abruf_haengt(monkeypatch, tmp_path):
|
||||
assert "error" in info
|
||||
|
||||
|
||||
def test_hermes_version_nach_dem_neuen_paketmanager(monkeypatch, tmp_path):
|
||||
"""25.09.2026: In der pyproject.toml steht „0.0.0“, die Tags heißen nach dem Datum — gezeigt wird das Datum des
|
||||
ausgecheckten Commits (die Übersicht zeigte „v0.0.0“)."""
|
||||
(tmp_path / "pyproject.toml").write_text('[project]\nversion = "0.0.0"\n', encoding="utf-8")
|
||||
monkeypatch.setattr(maintenance.subprocess, "run", lambda befehl, **kw: subprocess.CompletedProcess(
|
||||
befehl, 0, stdout="2026-09-25\n" if "log" in befehl else "", stderr=""))
|
||||
assert maintenance._hermes_version(str(tmp_path)) == "2026.9.25"
|
||||
monkeypatch.setattr(maintenance.subprocess, "run", lambda befehl, **kw: subprocess.CompletedProcess(
|
||||
befehl, 128, stdout="", stderr="kein git"))
|
||||
assert maintenance._hermes_version(str(tmp_path)) == "0.0.0"
|
||||
|
||||
|
||||
def test_hermes_update_mit_neuem_starter(monkeypatch, tmp_path):
|
||||
"""Nach dem Update vom 25.09.2026: eigener Starter, Build-Umgebung für python-olm, daemon-reload vor dem
|
||||
Neustart, doctor-Hinweise nicht fatal, Plugin-Pakete nachlegen, ehrliche Meldung bei halbem Stand."""
|
||||
monkeypatch.setattr(maintenance.system, "find_hermes_agent_git", lambda: {"path": str(tmp_path)})
|
||||
alt = maintenance._hermes_update_cmd()
|
||||
assert f"{tmp_path.as_posix()}/venv/bin/python -m hermes_cli.main update" in alt.replace("\\", "/")
|
||||
(tmp_path / ".hermes" / "bin").mkdir(parents=True)
|
||||
(tmp_path / ".hermes" / "bin" / "hermes").write_text("#!/bin/sh\n", encoding="utf-8")
|
||||
cmd = maintenance._hermes_update_cmd().replace("\\", "/")
|
||||
assert f"CC=gcc CXX=g++ CMAKE_POLICY_VERSION_MINIMUM=3.5 {tmp_path.as_posix()}/.hermes/bin/hermes update --yes" in cmd
|
||||
assert "doctor || echo" in cmd and "hermes-plugin-deps.sh || true" in cmd
|
||||
assert cmd.index("daemon-reload") < cmd.index("systemctl --user restart hermes-gateway")
|
||||
assert "HERMES-UPDATE UNVOLLSTÄNDIG" in cmd and "aber alter Stand" in cmd
|
||||
|
||||
|
||||
def test_update_per_knopf_landet_im_verlauf(monkeypatch):
|
||||
"""Einzel-Updates und „Alle aktualisieren“ schreiben ins strukturierte Verlauf-Format; bei einer
|
||||
gescheiterten Kette zeigt die letzte Teil-Marke, welcher Teil scheiterte."""
|
||||
|
||||
Reference in New Issue
Block a user