Versions-Definition: --version mit Remote-Check + README-Mismatch-Warnung

- Program.cs: PrintVersion() vergleicht Assembly-Version mit README.md
  (Block-Quote '> **Version: X.Y.Z**') und warnt bei Mismatch.
  Remote-Check via 'git ls-remote origin HEAD' vergleicht lokalen mit
  remote Commit-Hash; Hinweis 'UPDATE AVAILABLE' bei Differenz.
  Copy-Installationen (kein .git) erhalten Hinweis auf ./install.sh.
- README.md: Versions-Block-Quote unter dem Titel (kanonisch),
  Update-Check-Doku, drei synchrone Versionsquellen dokumentiert.
- AGENTS.md: Versions-Definition als Definition of Done für Releases
  (README + csproj + Assembly müssen synchron sein).
This commit is contained in:
2026-07-11 17:34:45 +02:00
parent 6ca81679d9
commit ca34a5f866
3 changed files with 174 additions and 5 deletions
+18
View File
@@ -34,3 +34,21 @@ dotnet bin/Release/net10.0/webstatic.dll serve --port 8000 # lokale V
- **Kein Commit ohne expliziten Wunsch.** Bei Release: signierte Commits.
- `dist/`, `bin/`, `obj/`, `.translation-drafts/` sind gitignored.
- Machine-Translation liefert nur **Entwürfe** (`.translation-drafts/`), nie Auto-Überschreibung.
## Versions-Definition (Definition of Done für Releases)
Die Versionsnummer wird an **drei Stellen synchron** gehalten — ein Release-Commit
muss alle drei aktualisieren, andernfalls warnt `webstatic --version` vor einem
Mismatch:
1. **`README.md`** — Block-Quote `> **Version: X.Y.Z**` direkt unter dem Titel
(kanonisch; per `git show origin/main:README.md` remote sichtbar)
2. **`GCBoK.WebStaticBuilder.csproj`** — `<Version>X.Y.Z</Version>` (Assembly)
3. **`webstatic --version`** — gibt Assembly-Version aus, vergleicht mit README
und remote Commit-Hash (`git ls-remote origin HEAD`)
Vor einem Release sind lokal und remote die Version feststellbar, ohne die CLI
aufzurufen:
```bash
git show HEAD:README.md | head -3 # lokal
git show origin/main:README.md | head -3 # remote
```