Skip to content

Commit c1a2430

Browse files
release(versioning): stabile 5.2.0 aus rc6 ableiten (#93)
* ci(release): stable-promotion und rc-retention fail-closed nachziehen * fix(release): rc-retention nur fuer hoehere naechste version behalten * fix(release): rc-keep an korrespondierenden stable-tag koppeln --------- Co-authored-by: GitHub Copilot Agent <github-actions[bot]@users.noreply.github.com>
1 parent cab8d70 commit c1a2430

6 files changed

Lines changed: 26 additions & 6 deletions

File tree

.github/workflows/release-retention.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
permissions:
1212
contents: write
1313
packages: write
14+
id-token: write
1415

1516
jobs:
1617
retention:
@@ -28,14 +29,19 @@ jobs:
2829
dotnet-version: |
2930
8.0.x
3031
10.0.102
32+
- name: NuGet login (OIDC / Trusted Publishing)
33+
uses: NuGet/login@d22cc5f58ff5b88bf9bd452535b4335137e24544 # v1
34+
id: nuget_login
35+
with:
36+
user: Tomtastisch
3137
- name: Apply retention (GH Releases + NuGet unlist + GH Packages delete)
3238
env:
3339
GH_TOKEN: ${{ github.token }}
3440
REPO: ${{ github.repository }}
3541
OWNER: ${{ github.repository_owner }}
3642
PACKAGE_ID: Tomtastisch.FileClassifier
3743
NUGET_PACKAGE_ID: tomtastisch.fileclassifier
38-
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
44+
NUGET_API_KEY: ${{ steps.nuget_login.outputs.NUGET_API_KEY || secrets.NUGET_API_KEY }}
3945
OUT_DIR: artifacts/retention
4046
run: bash tools/ci/release/retention_apply.sh
4147
- name: Upload retention artifacts

docs/versioning/002_HISTORY_VERSIONS.MD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Heuristik fuer die Rueckwirkungs-Zuordnung:
1212
- `docs|test|ci|chore|tooling|refactor|fix` => Patch
1313

1414
Aktueller Entwicklungsstand:
15-
- Aktuelle Entwicklungslinie enthaelt `5.x` (aktueller Pre-Release-Stand: `v5.2.0-rc.6`, naechster stabiler Zielstand: `5.2.0`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).
15+
- Aktuelle Entwicklungslinie enthaelt `5.x` (aktueller stabiler Stand: `v5.2.0`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).
1616

1717
Hinweis:
1818
- Die Spalte `Keyword` verwendet den technischen Klassifizierungswert aus der Historie.

docs/versioning/003_CHANGELOG_RELEASES.MD

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
Alle Aenderungen werden hier technisch dokumentiert. Die Release-Version selbst ist
88
der Git-Tag `vX.Y.Z` (optional `-prerelease`) als SSOT.
99

10-
## [Unreleased]
10+
## [5.2.0]
1111
- Added:
1212
- Incode-Dokumentation fuer die TFM-Providermethoden komplettiert (`HashPrimitivesProvider` fuer `netstandard2.0` und `net8.0+`).
1313
- Legacy-Office-Refinement (`LegacyOfficeBinaryRefiner`) fuer OLE2-Dokumente mit fail-closed Marker-Logik eingefuehrt.
1414
- Erweiterte E2E-Matrix-Tests fuer falsche Endungen, korrupte Payloads und Office/OpenDocument-Varianten ergänzt.
1515
- Changed:
16+
- Release-Linie von `v5.2.0-rc.6` auf stabilen Tag `v5.2.0` gehoben.
1617
- Public XML-Dokumentation auf Policy-045 ausgerichtet: unzulaessige `<exception>`-Tags in fail-closed APIs entfernt.
1718
- Deutsche Log-/Dokumentationstexte mit korrekten Umlauten harmonisiert.
1819
- Office-/OpenOffice-Aliasauflösung im `FileTypeRegistry` konsolidiert (`doc/docx/odt`, `xls/xlsx/ods`, `ppt/pptx/odp`).
@@ -22,11 +23,13 @@ der Git-Tag `vX.Y.Z` (optional `-prerelease`) als SSOT.
2223
- laengeres Retry-Fenster,
2324
- `registration` standardmaessig entkoppelt bei `vX.Y.Z-<label>`,
2425
- weiterhin fail-closed auf `flatcontainer`.
26+
- Release-Retention (`tools/ci/release/retention_apply.sh`) so angepasst, dass nach vorhandenem korrespondierendem Stable-Tag `vX.Y.Z` die RCs derselben Basisversion bereinigt werden (konkret: Promotion `v5.2.0-rc.6` -> `v5.2.0`), waehrend ein RC ohne korrespondierenden Stable-Tag erhalten bleibt.
2527
- Fixed:
2628
- Release-Blocker beseitigt, bei dem Pre-Release-Publish trotz erfolgreichem Push an verzögerter Registration-Sichtbarkeit scheiterte.
2729
- Docs/CI/Tooling:
2830
- NuGet-Trusted-Publishing-Doku (DE/EN) und Root-README auf den angepassten Gate-4-Ablauf aktualisiert.
2931
- Commit-Referenz fuer Version 5.2.0 in Versionshistorie (DE/EN) hinzugefuegt.
32+
- Retention-Workflow auf OIDC-Key-Fallback (`NuGet/login`) fuer NuGet-Unlist umgestellt.
3033

3134
## [5.1.4]
3235
- Changed:

docs/versioning/102_HISTORY_VERSIONS.MD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Heuristics for retroactive classification:
1212
- `docs|test|ci|chore|tooling|refactor|fix` => patch
1313

1414
Current state:
15-
- Current release line contains `5.x` (current pre-release state: `v5.2.0-rc.6`, next stable target: `5.2.0`; details in `docs/versioning/103_CHANGELOG_RELEASES.MD`).
15+
- Current release line contains `5.x` (current stable state: `v5.2.0`; details in `docs/versioning/103_CHANGELOG_RELEASES.MD`).
1616

1717
Note:
1818
- The \"short description\" column follows the original commit/PR intent text for deterministic traceability and is not normalized to a single language.

docs/versioning/103_CHANGELOG_RELEASES.MD

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66

77
All changes are documented here in technical terms. The release version itself is the Git tag `vX.Y.Z` (optional `-prerelease`) as SSOT.
88

9-
## [Unreleased]
9+
## [5.2.0]
1010
- Added:
1111
- Completed in-code documentation for TFM provider methods (`HashPrimitivesProvider` for `netstandard2.0` and `net8.0+`).
1212
- Added legacy Office refinement (`LegacyOfficeBinaryRefiner`) for OLE2 documents with fail-closed marker logic.
1313
- Added extended E2E matrix tests for wrong extensions, corrupted payloads, and Office/OpenDocument variants.
1414
- Changed:
15+
- Promoted the release line from `v5.2.0-rc.6` to the stable tag `v5.2.0`.
1516
- Aligned public XML docs with Policy 045 by removing invalid `<exception>` tags from fail-closed APIs.
1617
- Harmonized German log/doc strings to use proper umlauts.
1718
- Consolidated Office/OpenOffice alias resolution in `FileTypeRegistry` (`doc/docx/odt`, `xls/xlsx/ods`, `ppt/pptx/odp`).
@@ -21,11 +22,13 @@ All changes are documented here in technical terms. The release version itself i
2122
- longer retry window,
2223
- `registration` decoupled by default for `vX.Y.Z-<label>`,
2324
- still fail-closed on `flatcontainer`.
25+
- Updated release retention (`tools/ci/release/retention_apply.sh`) so RCs are cleaned up once the corresponding stable tag `vX.Y.Z` exists (for example `v5.2.0-rc.6` -> `v5.2.0`), while an RC without a corresponding stable tag is kept.
2426
- Fixed:
2527
- Resolved release blocker where pre-release publishing failed due delayed registration visibility despite successful push.
2628
- Docs/CI/Tooling:
2729
- Updated NuGet trusted-publishing docs (DE/EN) and root README for the adjusted Gate 4 behavior.
2830
- Added commit reference for version 5.2.0 in version history (DE/EN).
31+
- Switched retention workflow to OIDC key fallback (`NuGet/login`) for NuGet unlist operations.
2932

3033
## [5.1.4]
3134
- Changed:

tools/ci/release/retention_apply.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,15 @@ declare -A KEEP_TAGS=()
5050
[[ -n "${LATEST_STABLE}" ]] && KEEP_TAGS["${LATEST_STABLE}"]=1
5151
[[ -n "${PREV_STABLE}" ]] && KEEP_TAGS["${PREV_STABLE}"]=1
5252
[[ -n "${BASELINE}" ]] && KEEP_TAGS["${BASELINE}"]=1
53-
[[ -n "${LATEST_RC}" ]] && KEEP_TAGS["${LATEST_RC}"]=1
53+
54+
# Keep the latest RC until the corresponding stable tag (same X.Y.Z) exists.
55+
# RCs that match an already published stable version line are subject to cleanup.
56+
if [[ -n "${LATEST_RC}" ]]; then
57+
latest_rc_core="${LATEST_RC%%-rc.*}"
58+
if ! printf '%s\n' "${STABLE_TAGS[@]}" | grep -xF "${latest_rc_core}" >/dev/null 2>&1; then
59+
KEEP_TAGS["${LATEST_RC}"]=1
60+
fi
61+
fi
5462

5563
# GH releases actions
5664
mapfile -t RELEASE_ROWS < <(gh api "/repos/${REPO}/releases" --paginate | jq -r '.[] | [.id, .tag_name] | @tsv')

0 commit comments

Comments
 (0)