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
+43 -1
View File
@@ -1,5 +1,9 @@
# GCBoK.WebStaticBuilder
> **Version: 1.0.0** — Diese Versionsnummer steht in `README.md` (kanonisch),
> in `GCBoK.WebStaticBuilder.csproj` (`<Version>`) und wird von `webstatic --version`
> ausgegeben. Alle drei Quellen müssen synchron gehalten werden.
Eigenständiger, quelloffener **Static-Site-Generator** der GitCover Commons für
mehrsprachige, SEO-optimierte, compliance-freundliche Websites. Ersetzt den
früheren C#-Builderskript der GCBoK-Website durch ein generisches, für KMU
@@ -69,8 +73,46 @@ Siehe `webstatic.example/webstatic.json` und `docs/getting-started.md`.
## Version & Update
Die Versionsnummer wird an drei Stellen synchron gehalten (Definition of Done
für jeden Release-Commit):
1. **`README.md`** — Block-Quote direkt unter dem Titel (kanonisch, per Remote
via `git show origin/main:README.md` sichtbar)
2. **`GCBoK.WebStaticBuilder.csproj`** — `<Version>1.0.0</Version>` (Assembly)
3. **`webstatic --version`** — gibt die Assembly-Version aus
So kann vor einem Update sowohl lokal (im Installations-Repo) als auch remote
(im Upstream-Repo) die Version festgestellt werden, ohne die CLI aufzurufen:
```bash
# Lokal installierte Version (Clone-Installation)
git -C /opt/GitCover/webstatic show HEAD:README.md | head -3
# Remote verfügbare Version (vor Pull)
git -C /opt/GitCover/webstatic show origin/main:README.md | head -3
```
### Update-Check via CLI
`webstatic --version` führt automatisch einen Remote-Check durch
(`git ls-remote origin HEAD`) und vergleicht lokalen mit remote Commit-Hash:
```bash
webstatic --version
# GCBoK.WebStaticBuilder 1.0.0.0
# commit: 6ca8167 (local)
# remote: ff634a3
#
# UPDATE AVAILABLE
# Run: webstatic update
```
Bei Copy-Installationen (kein `.git`) entfällt der Remote-Check; das Tool weist
auf `./install.sh` als Update-Weg hin.
### Update durchführen
```bash
webstatic --version # Assembly-Version + Git-Commit des Installations-Repos
webstatic update # Selbstaktualisierung (Clone-Installation): lokale
# Änderungen werden gestasht, git pull, gemerged, neu gebaut
```