feat: Versionierung mit Changelog, Version 1.0.0

Bis jetzt stand nirgends, welcher Stand laeuft. Beim Aktualisieren auf
einem Server ist das die erste Frage.

CHANGELOG.md nach Keep a Changelog, Versionsnummern nach SemVer. Der
Changelog sagt, was sich beim Arbeiten aendert - nicht, welche Datei
angefasst wurde. Dazu eine Tabelle, was Major, Minor und Patch fuer den
Betreiber praktisch bedeuten, und der Hinweis, dass sich eine
Datenbank-Migration nicht zurueckrollen laesst.

Die Version steht bewusst an zwei Stellen: package.json und
src/lib/version.ts. Ein Import der package.json waere im
Standalone-Build eine andere Datei als die des Projekts - die Zahl haenge
dann an der Laufzeit. Ein Test haelt beide zusammen, und
"npm run version" setzt sie gemeinsam samt Changelog-Abschnitt.

Committet und getaggt wird nicht automatisch. Ein Changelog-Eintrag, den
niemand gegengelesen hat, ist keinen Deut besser als keiner.

Sichtbar wird die Version unten in der Seitenleiste und unter
/api/gesundheit - dort mit Git-Stand, den der Docker-Build hineinreicht.
Auf der Anmeldeseite steht sie nicht: wer nicht angemeldet ist, muss
nicht wissen, welche Fassung hier laeuft.

Etappe: 8
Phase: Haertung
This commit is contained in:
Florian Wilde
2026-08-22 10:41:33 +02:00
parent 4b953e7887
commit b2ac13e128
10 changed files with 442 additions and 8 deletions
+11 -1
View File
@@ -21,12 +21,15 @@ export function AppHuelle({
kopfzeile,
schnellerfassung,
benutzerbereich,
version,
children,
}: {
navigation: NavEintrag[]
kopfzeile: React.ReactNode
schnellerfassung?: React.ReactNode
benutzerbereich: React.ReactNode
/** Wird unten in der Seitenleiste angezeigt - hilft beim Aktualisieren. */
version?: string
children: React.ReactNode
}) {
const [menueOffen, setMenueOffen] = React.useState(false)
@@ -73,7 +76,14 @@ export function AppHuelle({
<Navigation eintraege={navigation} />
</div>
<div className="border-t p-3">{benutzerbereich}</div>
<div className="border-t p-3">
{benutzerbereich}
{version && (
<p className="px-2 pt-2 text-xs text-muted-foreground">
Version {version}
</p>
)}
</div>
</aside>
{/* --- Kopfzeile am Handy ------------------------------------------- */}