Skip to content

fix(release): Versionsnummer zaehlt wieder um eins statt um zwei - #87

Merged
daniel-marthaler merged 1 commit into
masterfrom
fix/versionsschritt-um-eins
Aug 28, 2026
Merged

fix(release): Versionsnummer zaehlt wieder um eins statt um zwei#87
daniel-marthaler merged 1 commit into
masterfrom
fix/versionsschritt-um-eins

Conversation

@daniel-marthaler

Copy link
Copy Markdown
Collaborator

Problem

Die naechste Release-Nummer wird aus der POM-Version gerechnet (POM + ein Schritt). do_release setzte die POM danach aber auf die uebernaechste Nummer — NEXT_MINOR=$((MINOR + 1)) lief auf der bereits erhoehten MINOR. Der folgende Lauf rechnete von dort erneut hoch, jede zweite Nummer blieb unbenutzt:

Projekt Tags
plaintext-root 1.605.0 → 1.607.0 → 1.609.0 → 1.611.0
plaintext-app 2.376.0 → 2.378.0 → 2.380.0 → 2.382.0
plaintext-iot 1.330.0 → 1.332.0 → 1.334.0 → 1.336.0

Bei PATCH-Releases war es groeber: 1.616.1 hinterliess 1.617.0-SNAPSHOT, der naechste Patch wurde damit 1.617.1 statt 1.616.2.

Es ist eine einzige Stelle fuer alle Projekte: ci-cd-pipeline.yaml@master./build 56do_release.

Fix

Die Rechnung steckt jetzt in compute_release_versions() — rein rechnend, ohne Seiteneffekte und damit einzeln testbar. Die SNAPSHOT-Version traegt die gerade veroeffentlichte Nummer; hochgezaehlt wird erst beim naechsten Release.

Tests

test-versionsschritt.sh schneidet die Funktion aus dem Skript (das ganze tui-build-logic.sh laesst sich nicht sourcen, es verlangt build-conf.txt) und faehrt ganze Release-Ketten durch: MINOR/MAJOR/PATCH, POM ohne -SNAPSHOT nach gescheitertem SNAPSHOT-Push, gemischte Schritte. Dazu Regressionswaechter darauf, dass do_release die Funktion auch wirklich benutzt und nicht selbst rechnet.

  • 18 Faelle, alle gruen
  • Gegenprobe mit wieder eingebautem Fehler faerbt rot und zeigt exakt die Historie: 1.617.0 1.619.0 1.621.0 1.623.0
  • Durchlauf gegen eine echte POM mit mvn versions:set: 1.617.0 → 1.618.0 → 1.619.0 → 1.620.0, lueckenlos
  • test-release-reihenfolge.sh bleibt gruen (die bewachte Reihenfolge ist nicht beruehrt)

Vor dem Merge beachten

Einmalig bleibt in jedem Repo eine Luecke: die POM steht ueberall eine Nummer ueber dem letzten Tag (root 1.616.0 / 1.617.0-SNAPSHOT, app 2.1665.0 / 2.1666.0-SNAPSHOT, iot, schuetu, guild analog). Das naechste Release ueberspringt sie, danach zaehlt es lueckenlos. Schliessen liesse sie sich nur mit einem POM-Reset pro Repo — das ist ein Push auf master und wuerde ohne [skip-ci] sofort Release + PROD-Deploy ausloesen.

🤖 Generated with Claude Code

https://claude.ai/code/session_018SxquAgzdtGanx5B5y7Q83

Die naechste Release-Nummer wird aus der POM-Version gerechnet (POM + ein
Schritt). do_release setzte die POM danach aber auf die UEBERNAECHSTE Nummer:
NEXT_MINOR=$((MINOR + 1)) lief auf der schon erhoehten MINOR. Der folgende
Lauf rechnete von dort erneut hoch, jede zweite Nummer blieb unbenutzt:

  plaintext-root   1.605.0 -> 1.607.0 -> 1.609.0 -> 1.611.0
  plaintext-app    2.376.0 -> 2.378.0 -> 2.380.0 -> 2.382.0
  plaintext-iot    1.330.0 -> 1.332.0 -> 1.334.0 -> 1.336.0

Bei PATCH-Releases war es groeber: 1.616.1 hinterliess 1.617.0-SNAPSHOT,
der naechste Patch wurde damit 1.617.1 statt 1.616.2.

Die Rechnung steckt jetzt in compute_release_versions() - rein rechnend,
ohne Seiteneffekte und damit einzeln testbar. Die SNAPSHOT-Version traegt
die gerade veroeffentlichte Nummer; hochgezaehlt wird erst beim naechsten
Release.

test-versionsschritt.sh schneidet die Funktion aus dem Skript und faehrt
ganze Release-Ketten durch (MINOR/MAJOR/PATCH, POM ohne -SNAPSHOT nach
gescheitertem SNAPSHOT-Push, gemischte Schritte) plus Regressionswaechter
darauf, dass do_release die Funktion auch wirklich benutzt. Gegenprobe mit
wieder eingebautem Fehler faerbt rot; ein Durchlauf gegen eine echte POM
mit mvn versions:set ergibt 1.617.0 - 1.618.0 - 1.619.0 - 1.620.0.

Einmalig bleibt in jedem Repo eine Luecke: die POM steht ueberall eine
Nummer ueber dem letzten Tag, das naechste Release ueberspringt sie.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018SxquAgzdtGanx5B5y7Q83
@daniel-marthaler
daniel-marthaler merged commit ec7287d into master Aug 28, 2026
1 check passed
@daniel-marthaler
daniel-marthaler deleted the fix/versionsschritt-um-eins branch August 28, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant