Skip to content

fix(filetypedetection): policy-045 bereinigen und prerelease-gate4 stabilisieren#85

Merged
tomtastisch merged 4 commits intomainfrom
codex/fix/policy045-prerelease-gate4
Feb 17, 2026
Merged

fix(filetypedetection): policy-045 bereinigen und prerelease-gate4 stabilisieren#85
tomtastisch merged 4 commits intomainfrom
codex/fix/policy045-prerelease-gate4

Conversation

@tomtastisch
Copy link
Owner

@tomtastisch tomtastisch commented Feb 17, 2026

Ziel & Scope

  • Ziel:
    • Policy-045-Verstöße in src/FileTypeDetection/* bereinigen (Dokumentationssemantik + Sprachkonformität).
    • Release-Gate-4 für Pre-Releases robust machen, ohne stabile Releases aufzuweichen.
    • Versioning-/Release-Dokumentation und Kompatibilitätsnachweise konsistent nachziehen.
  • Scope (in):
    • src/FileTypeDetection/* (nur policy-konforme Dokumentations-/Textkorrekturen, keine Public-API-Änderung)
    • tools/ci/release/gate4_verify_postpublish.sh
    • SSOT-/Audit-Doku unter docs/ und Root-README.md
  • Non-Goals (out):
    • Keine Feature-Erweiterung in der Bibliotheksfunktionalität
    • Keine Änderung an SECURITY.md
    • Kein Runtime-Provider-Switching

Umgesetzte Aufgaben (abhaken)

  • Aufgabe 1 umgesetzt: Policy-045-Verstöße in Code/Doku-Semantik bereinigt
  • Aufgabe 2 umgesetzt: Gate-4-Postpublish für Pre-Release robust/fail-closed angepasst
  • Aufgabe 3 umgesetzt: Versioning-/Doku-/Evidence-Artefakte konsistent aktualisiert

Nachbesserungen aus Review (iterativ)

  • Alle Copilot-/Reviewer-Kommentare geprüft
  • Alle notwendigen Code-Nachbesserungen umgesetzt
  • PR-Beschreibung nach Nachbesserung aktualisiert
  • Alle Threads resolved (inkl. outdated)

Security- und Merge-Gates

  • Required Checks sind grün
  • security/code-scanning/tools: 0 offene Alerts
  • Keine offenen blocker findings

Evidence (auditierbar)

  • Build/Test/Checks mit Artefakten vorhanden
  • Relevante Befehle im PR-Text dokumentiert
  • Risiken/Assumptions explizit benannt

Relevante Befehle (lokal ausgeführt)

  1. dotnet restore FileClassifier.sln -v minimal (Exit 0)
  2. dotnet build FileClassifier.sln -c Release --no-restore -warnaserror -v minimal (Exit 0)
  3. dotnet test tests/FileTypeDetectionLib.Tests/FileTypeDetectionLib.Tests.csproj -c Release --no-build -v minimal (Exit 0, 414 grün)
  4. dotnet pack src/FileTypeDetection/FileTypeDetectionLib.vbproj -c Release --no-build -o artifacts/ci/netstandard2-compat/nuget -v minimal (Exit 0)
  5. dotnet format FileClassifier.sln --verify-no-changes -v minimal (Exit 0)
  6. python3 tools/check-doc-consistency.py (Exit 0)
  7. python3 tools/check-docs.py (Exit 0)
  8. bash tools/versioning/verify-version-convergence.sh (Exit 0)
  9. EXPECTED_RELEASE_TAG=v5.2.0-rc.3 REQUIRE_RELEASE_TAG=1 bash tools/ci/check-versioning-svt.sh --repo-root . --out artifacts/ci/versioning-svt/versioning-svt-summary.json (Exit 0)
  10. bash tools/ci/release/gate2_version_policy.sh release v5.2.0-rc.3 artifacts/nuget/Tomtastisch.FileClassifier.5.2.0-rc.3.nupkg (Exit 0)
  11. VERIFY_ONLINE=0 bash tools/ci/release/gate4_verify_postpublish.sh 5.2.0-rc.3 artifacts/nuget/Tomtastisch.FileClassifier.5.2.0-rc.3.nupkg (Exit 0, require_registration=0)
  12. VERIFY_ONLINE=0 bash tools/ci/release/gate4_verify_postpublish.sh 5.2.0 artifacts/ci/netstandard2-compat/nuget/Tomtastisch.FileClassifier.5.2.0.nupkg (Exit 0, require_registration=1)

Artefakte/Dateien

  • docs/audit/compat/003_NETSTANDARD2_COMPAT_EVIDENCE.MD
  • artifacts/ci/netstandard2-compat/build-netstandard2.0.log
  • artifacts/ci/netstandard2-compat/build-net8.0.log
  • artifacts/ci/netstandard2-compat/build-net10.0.log
  • artifacts/ci/versioning-svt/versioning-svt-summary.json
  • artifacts/ci/version-convergence/summary.json

DoD (mindestens 2 pro Punkt)

Punkt DoD A DoD B Status
Aufgabe 1 Keine <exception>-XML-Tags mehr in fail-closed Public APIs unter src/FileTypeDetection/* dotnet format --verify-no-changes sowie Build/Test grün [x]
Aufgabe 2 Gate4 unterscheidet stabil vs. pre-release deterministisch (require_registration=1 vs. 0) Stable bleibt fail-closed auf flatcontainer=1 [x]
Aufgabe 3 SSOT-Doku aktualisiert (docs/ci/*, docs/versioning/*, README.md) Evidence-Report mit reproduzierbaren Kommandos/Artefakten aktualisiert [x]

Risiken / Open Items

  • keine
  • vorhanden (unten auflisten)

Details (nur falls vorhanden)

  • Risiko 1: Für Pre-Release ist registration in Gate4 standardmäßig entkoppelt. Mitigation: asynchrone Konvergenz bleibt blockerhaft auf allen Endpunkten (search/registration/flatcontainer).
  • Risiko 2: Lokaler versioning-svt-Aufruf über tools/ci/bin/run.sh versioning-svt kann ohne CI-Run-URL scheitern; Mitigation: direkte Ausführung über tools/ci/check-versioning-svt.sh mit explizitem EXPECTED_RELEASE_TAG.

Copilot AI review requested due to automatic review settings February 17, 2026 08:20
@tomtastisch tomtastisch added version:patch Fix/Refactor/Docs/CI/Tooling; requires PATCH bump fix Bugfix impl:quality area:detection release:rc Release candidate marker (informational only) and removed area:pipeline area:docs area:tooling impl:security labels Feb 17, 2026
@github-actions github-actions bot added feature New compatible feature or datatype impl:config area:docs versioning:minor New compatible functionality; requires MINOR bump and removed version:patch Fix/Refactor/Docs/CI/Tooling; requires PATCH bump fix Bugfix area:detection release:rc Release candidate marker (informational only) impl:quality 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

This PR addresses Policy-045 compliance violations in the src/FileTypeDetection/ codebase and stabilizes the release Gate-4 process for pre-releases, without modifying any public API signatures or runtime behavior.

Changes:

  • Removed invalid <exception> XML documentation tags from public fail-closed APIs and corrected German text to use proper umlauts (ä, ö, ü instead of ae, oe, ue)
  • Enhanced Gate-4 post-publish verification to differentiate between stable releases (require registration visibility) and pre-releases (decouple registration by default, extend retry window)
  • Updated versioning documentation (DE/EN) to add commit references and align trusted-publishing documentation with the adjusted Gate-4 behavior

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tools/ci/release/gate4_verify_postpublish.sh Added pre-release detection, differentiated retry schedules (stable: 408s budget, pre-release: 984s), and made registration requirement configurable based on version type
src/FileTypeDetection/Providers/NetStandard2_0/HashPrimitivesProvider.vb Added complete XML documentation for internal provider methods (EncodeLowerHex, SHA256 primitives, FastHash64)
src/FileTypeDetection/Providers/Net8_0Plus/HashPrimitivesProvider.vb Added complete XML documentation for internal provider methods (EncodeLowerHex, SHA256 primitives, FastHash64)
src/FileTypeDetection/Infrastructure/CoreInternals.vb Fixed German umlaut: "gueltigen" → "gültigen"
src/FileTypeDetection/Infrastructure/ArchiveInternals.vb Fixed German umlaut: "Ungueltiger" → "Ungültiger"
src/FileTypeDetection/FileTypeOptions.vb Removed invalid <exception> tags from LoadOptions; fixed German umlauts in log messages; improved formatting consistency
src/FileTypeDetection/FileTypeDetector.vb Removed invalid <exception> tags from 8 public methods (ReadFileSafe, Detect variants, DetectDetailed variants, TryValidateArchive, ExtractArchiveSafe variants); fixed German umlauts; improved code formatting
src/FileTypeDetection/FileMaterializer.vb Removed invalid <exception> tags from 3 Persist overloads; fixed German umlauts in log messages
src/FileTypeDetection/ArchiveProcessing.vb Removed invalid <exception> tags from TryValidate and ExtractToMemory
docs/versioning/103_CHANGELOG_RELEASES.MD Updated unreleased section with changes from this PR
docs/versioning/102_HISTORY_VERSIONS.MD Added commit reference [8d65a52] for version 5.2.0
docs/versioning/003_CHANGELOG_RELEASES.MD Updated unreleased section with changes from this PR (German)
docs/versioning/002_HISTORY_VERSIONS.MD Added commit reference [8d65a52] for version 5.2.0 (German)
docs/ci/102_NUGET_TRUSTED_PUBLISHING.MD Documented differentiated Gate-4 behavior for stable vs pre-release tags
docs/ci/002_NUGET_TRUSTED_PUBLISHING.MD Documented differentiated Gate-4 behavior for stable vs pre-release tags (German)
docs/audit/compat/003_NETSTANDARD2_COMPAT_EVIDENCE.MD Updated evidence commands and added Gate-4 pre-release/stable verification proofs
README.md Updated release process description to reflect new Gate-4 behavior

@tomtastisch tomtastisch enabled auto-merge (squash) February 17, 2026 08:30
@tomtastisch tomtastisch merged commit 9fe3646 into main Feb 17, 2026
26 checks passed
@tomtastisch tomtastisch deleted the codex/fix/policy045-prerelease-gate4 branch February 17, 2026 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs area:versioning feature New compatible feature or datatype impl:config versioning:minor New compatible functionality; requires MINOR bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant