Skip to content

fix(versioning): prerelease-tags im release-gate freigeben#84

Merged
tomtastisch merged 1 commit intomainfrom
codex/fix/release-gate-prerelease-rc
Feb 17, 2026
Merged

fix(versioning): prerelease-tags im release-gate freigeben#84
tomtastisch merged 1 commit intomainfrom
codex/fix/release-gate-prerelease-rc

Conversation

@tomtastisch
Copy link
Owner

Ziel & Scope

Diese PR behebt einen blocker im Release-Gate für Pre-Releases: vX.Y.Z-rc.N wurde im versioning-svt-Check fälschlich als ungültig behandelt und hat damit Release Publish für v5.2.0-rc.1 failen lassen.

In Scope:

  • Anpassung von tools/ci/check-versioning-svt.sh auf Pre-Release-kompatible Tag-Validierung
  • Korrekte Vergleichslogik für RepoVersion/vbproj bei Pre-Release-Tags (Core-SemVer)
  • Exakter Tag-vs-NuGet-Version-Abgleich bleibt unverändert strikt

Out of Scope:

  • keine Änderung an Produktcode in src/
  • keine Änderung an Public API
  • keine Änderung an SECURITY.md

Umgesetzte Aufgaben (abhaken)

  • EXPECTED_RELEASE_TAG-Validierung erweitert auf vX.Y.Z[-prerelease]
  • HEAD-Tag-Erkennung in SVT erweitert auf vX.Y.Z[-prerelease]
  • Fehlermeldungen/Gate-Scopes für Pre-Release-Format angepasst
  • Vergleich RepoVersion bei Pre-Release auf Core-Version (X.Y.Z) umgestellt
  • Vergleich tag vs vbproj Version/PackageVersion bei Pre-Release auf Core-Version umgestellt
  • Vergleich tag vs nupkg version weiterhin exakt (X.Y.Z-rc.N) belassen
  • Lokale Reproduktion des ursprünglichen Fehlers durchgeführt
  • Lokale Verifikation der korrigierten Gate-Logik für v5.2.0-rc.1 erfolgreich

Nachbesserungen aus Review (iterativ)

  • Keine offenen Review-Nachbesserungen zum Zeitpunkt der PR-Erstellung
  • Bei neuem Feedback werden PR-Body und Checklisten iterativ aktualisiert

Security- und Merge-Gates

  • Keine Änderung an SECURITY.md
  • Keine Scope-Erweiterung über Versioning-/Release-Gates hinaus
  • Fail-closed-Charakter des Gates bleibt erhalten
  • security/code-scanning/tools: Zielzustand 0 offene Alerts vor Merge
  • Merge nur bei grünen Required Checks und ohne offene Conversations

Evidence (auditierbar)

Lokale Befehle (Exit-Code 0):

  • dotnet pack src/FileTypeDetection/FileTypeDetectionLib.vbproj -c Release --no-restore -p:PackageVersion=5.2.0-rc.1 -p:Version=5.2.0-rc.1 -o artifacts/nuget -v minimal
  • EXPECTED_RELEASE_TAG=v5.2.0-rc.1 REQUIRE_RELEASE_TAG=1 bash tools/ci/check-versioning-svt.sh --repo-root . --naming-ssot tools/ci/policies/data/naming.json --versioning-ssot tools/ci/policies/data/versioning.json --out artifacts/nuget/versioning-svt-summary.json
  • bash tools/ci/release/gate2_version_policy.sh release v5.2.0-rc.1 artifacts/nuget/Tomtastisch.FileClassifier.5.2.0-rc.1.nupkg

Artefakte:

  • tools/ci/check-versioning-svt.sh
  • artifacts/nuget/Tomtastisch.FileClassifier.5.2.0-rc.1.nupkg
  • artifacts/nuget/versioning-svt-summary.json

DoD (mindestens 2 pro Punkt)

Punkt DoD A DoD B
Pre-Release-Tag wird akzeptiert EXPECTED_RELEASE_TAG=v5.2.0-rc.1 ergibt keinen Formatfehler mehr Scope svt.expected_release_tag im Summary auf pass
Repo/VBProj bleiben stabil auf Core-Version repo.ssot.RepoVersion.core prüft 5.2.0 gegen RepoVersion=5.2.0 svt.tag_core_vs_vbproj.* auf pass bei v5.2.0-rc.1
Strikter Paketabgleich bleibt erhalten svt.tag_vs_nupkg.version prüft exakt 5.2.0-rc.1 Gate2 (gate2_version_policy.sh) läuft für RC mit pass

Copilot AI review requested due to automatic review settings February 17, 2026 07:40
@github-actions github-actions bot added area:pipeline area:tooling fix Bugfix impl:config versioning:patch Fix/Refactor/Docs/CI/Tooling; requires PATCH bump and removed area:pipeline labels Feb 17, 2026
@tomtastisch tomtastisch added area:versioning release:rc Release candidate marker (informational only) labels Feb 17, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Diese PR passt den CI-Check versioning-svt so an, dass Pre-Release-Tags wie vX.Y.Z-rc.N im Release-Gate akzeptiert werden und die Versionsvergleiche für RepoVersion/vbproj bei Pre-Releases auf die Core-SemVer (X.Y.Z) umschalten, während der Tag-vs-NuGet-Abgleich weiterhin exakt bleibt.

Changes:

  • Erweiterte Tag-Validierung/HEAD-Tag-Erkennung auf vX.Y.Z[-prerelease] via zentralem Regex.
  • Einführung von semver_core() zur Extraktion der Core-Version für Pre-Release-Vergleiche.
  • Anpassung der Vergleichslogik: RepoVersion und vbproj werden bei Pre-Release-Tags gegen die Core-Version geprüft.

@tomtastisch tomtastisch enabled auto-merge (squash) February 17, 2026 07:49
@tomtastisch tomtastisch merged commit a833bc6 into main Feb 17, 2026
32 checks passed
@tomtastisch tomtastisch deleted the codex/fix/release-gate-prerelease-rc branch February 17, 2026 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:tooling area:versioning fix Bugfix impl:config release:rc Release candidate marker (informational only) versioning:patch Fix/Refactor/Docs/CI/Tooling; requires PATCH bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant