v0.5.2
[0.5.2] – 2026-07-29
Wartungs-Release. Beseitigt den letzten von Hand gepflegten Versionsstring in
src/: der User-Agent kommt neu aus den Paket-Metadaten. Für Nutzende ändert
sich nichts — die 21 Tools sind unverändert, der ausgehende User-Agent ist bei
installiertem Paket bitgleich zu v0.5.1. Er entsteht nur nicht mehr manuell.
Geändert / Changed
- User-Agent kommt aus den Paket-Metadaten.
__version__wird neu über
importlib.metadata.version()aus der installierten Distribution gelesen,
der User-Agent daraus zusammengesetzt (USER_AGENTin__init__.py). Damit
entfällt der letzte von Hand gepflegte Versionsstring insrc/— die
Fehlerklasse, die den Server von v0.2.0 bis v0.5.0 mit einer falschen
Version gegenüber jedem Upstream auftreten liess und in v0.5.1 erneut
manuell nachgezogen werden musste. Ohne Installation (reiner
Quell-Checkout) meldet der Server0+unknownstatt einer erfundenen
Nummer.
Behoben / Fixed
__version__stand auf0.1.0. Das Dunder in__init__.pywar seit
dem Initial-Release nie mitgezogen worden und damit noch weiter abgedriftet
als der User-Agent. Es wurde bislang nirgends ausgewertet, wäre aber die
naheliegende Quelle für jede Integration gewesen, die die Serverversion
wissen will. Entfällt jetzt als eigenständiger Wert.
Tests / CI
check_version_sync.pyverbietet hartkodierte Versionen insrc/. Der
Check vergleicht weiterhinpyproject.tomlmitserver.jsonund meldet
zusätzlich jedes Versionsliteral untersrc/(User-Agent-Form und
__version__-Zuweisung). Läuft weiterhin ohne Projekt-Installation im
lint-Job.- Die Versions-Badges beider READMEs sind neu im selben Check. Sie waren
die dritte Stelle mit einer Versionsnummer und die einzige, die nichts
erzwang — beim Bump auf 0.5.2 aufgefallen. Rein kosmetisch, aber dieselbe
Drift-Klasse wieserver.json: nur sichtbar, wenn jemand hinschaut. - Zwei Unit-Tests (
tests/test_unit.py): der UA-Header muss aus
__version__gebaut sein, und die installierten Metadaten müssen zu
pyproject.tomlpassen. Der zweite Test hat beim Schreiben sofort einen
veralteten editable Install aufgedeckt und wird ohne Installation
übersprungen statt zu scheitern.