Skip to content

Comments

feat(api): public-api-analyzer als fail-closed gate aktivieren#126

Merged
tomtastisch merged 1 commit intomainfrom
codex/feat/6-1-16-public-api-analyzers
Feb 22, 2026
Merged

feat(api): public-api-analyzer als fail-closed gate aktivieren#126
tomtastisch merged 1 commit intomainfrom
codex/feat/6-1-16-public-api-analyzers

Conversation

@tomtastisch
Copy link
Owner

Ziel & Scope

  • Phase B der 6.1.x-Produktionsfinalisierung umsetzen: Public-API-Auditierbarkeit für FileTypeDetectionLib fail-closed aktivieren.
  • Keine beabsichtigte Laufzeit- oder Signaturänderung der bestehenden Public API; nur Governance-/Build-Gate-Härtung.
  • Versionskonvergenz gemäß SSOT auf 6.1.16 herstellen.

Umgesetzte Aufgaben (abhaken)

  • Microsoft.CodeAnalysis.PublicApiAnalyzers zentral in Directory.Packages.props ergänzt.
  • Analyzer in Directory.Build.props für FileTypeDetectionLib aktiviert (PrivateAssets=all).
  • Fail-closed RS-Gates (RS0016/RS0017/RS0022/RS0023/RS0024/RS0025/RS0026/RS0027) als WarningsAsErrors für FileTypeDetectionLib gesetzt.
  • Public-API-Baseline-Dateien angelegt: src/FileTypeDetection/PublicAPI.Shipped.txt und src/FileTypeDetection/PublicAPI.Unshipped.txt.
  • Bestehende API deterministisch per Analyzer-Codefix in Baseline überführt (Shipped befüllt, Unshipped geleert).
  • Governance-Prozess für API-Änderungen in Root + DE/EN-Spiegel dokumentiert.
  • Versionierungsdokumente Root + DE/EN-Spiegel auf 6.1.16 aktualisiert.
  • Versionskonvergenz in RepoVersion, Version, PackageVersion auf 6.1.16 angehoben.

Nachbesserungen aus Review (iterativ)

  • Keine Review-Nachbesserung offen (Stand dieser Revision).

Security- und Merge-Gates

  • security/code-scanning/tools muss vor Merge 0 offene Alerts liefern.
  • Required Checks müssen vollständig grün sein.
  • Keine offenen Review-Threads vor Merge.
  • Merge nur gemäß Ruleset/Branch-Protection.

Evidence (auditierbar)

  • dotnet restore --locked-mode FileClassifier.sln -v minimal
  • dotnet build FileClassifier.sln -c Release --no-restore -warnaserror -v minimal
  • dotnet test tests/FileTypeDetectionLib.Tests/FileTypeDetectionLib.Tests.csproj -c Release --no-build -v minimal
  • bash tools/ci/bin/run.sh preflight
  • dotnet format analyzers src/FileTypeDetection/FileTypeDetectionLib.vbproj --diagnostics RS0016 --severity info --no-restore -v minimal
  • gh api 'repos/tomtastisch/FileClassifier/code-scanning/alerts?state=open&per_page=100' --jq 'length'

DoD (mindestens 2 pro Punkt)

Punkt DoD 1 DoD 2
Public API Gate aktiv Build schlägt fail-closed bei nicht deklarierten API-Symbolen fehl (RS0016*) PublicAPI.Shipped.txt + PublicAPI.Unshipped.txt sind im Projektpfad vorhanden
Governance dokumentiert API-Änderungsworkflow (Unshipped -> Shipped) ist in Root + DE/EN-Spiegeln dokumentiert RS-Fehlerliste als verbindlicher Build-Gate in Policy dokumentiert
Versionskonvergenz 6.1.16 Directory.Build.props + FileTypeDetectionLib.vbproj tragen 6.1.16 Top-Einträge in History/Changelog Root + DE/EN zeigen 6.1.16

Copilot AI review requested due to automatic review settings February 22, 2026 20:22
@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@github-actions github-actions bot added area:docs area:versioning feature New compatible feature or datatype impl:config versioning:minor New compatible functionality; requires MINOR bump labels Feb 22, 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 activates fail-closed public API auditability for the FileTypeDetectionLib project by integrating Microsoft.CodeAnalysis.PublicApiAnalyzers as a mandatory build gate. The change establishes a baseline of the current public API surface and enforces that any future API changes must be explicitly declared in baseline files, preventing unintentional API drift. Version convergence is updated to 6.1.16 across all project and documentation files.

Changes:

  • Added and activated Microsoft.CodeAnalysis.PublicApiAnalyzers with fail-closed enforcement for FileTypeDetectionLib
  • Established public API baseline files (PublicAPI.Shipped.txt with 144 entries, PublicAPI.Unshipped.txt empty)
  • Updated version convergence to 6.1.16 across Directory.Build.props, project file, and all documentation
  • Extended governance policy documentation (DE/EN + mirrors) to define the mandatory API change workflow

Reviewed changes

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

Show a summary per file
File Description
Directory.Packages.props Added Microsoft.CodeAnalysis.PublicApiAnalyzers 3.3.4 to centrally managed packages
Directory.Build.props Activated PublicApiAnalyzers for FileTypeDetectionLib with fail-closed RS diagnostics as WarningsAsErrors; updated RepoVersion to 6.1.16
src/FileTypeDetection/FileTypeDetectionLib.vbproj Updated Version and PackageVersion to 6.1.16
src/FileTypeDetection/PublicAPI.Shipped.txt Created baseline with 144 public API entries representing the current shipped API surface
src/FileTypeDetection/PublicAPI.Unshipped.txt Created empty baseline file for tracking not-yet-released API changes
src/FileTypeDetection/packages.lock.json Regenerated lock file reflecting the new PublicApiAnalyzers package dependency across all target frameworks
docs/governance/045_CODE_QUALITY_POLICY_DE.MD Added section 13 documenting the fail-closed Public API governance workflow (German)
docs/governance/145_CODE_QUALITY_POLICY_DE.MD Added section 12 documenting the fail-closed Public API governance workflow (English)
docs/0_de/governance/045_CODE_QUALITY_POLICY_DE.MD German mirror: Added section 13 for Public API governance
docs/1_en/governance/045_CODE_QUALITY_POLICY_DE.MD English mirror: Added section 12 for Public API governance
docs/versioning/002_HISTORY_VERSIONS.MD Added version 6.1.16 entry documenting API auditability activation (German)
docs/versioning/102_HISTORY_VERSIONS.MD Added version 6.1.16 entry documenting API auditability activation (English)
docs/versioning/003_CHANGELOG_RELEASES.MD Added 6.1.16 release notes in German format
docs/versioning/103_CHANGELOG_RELEASES.MD Added 6.1.16 release notes in English format
docs/0_de/versioning/002_HISTORY_VERSIONS.MD German mirror: Added 6.1.16 version entry
docs/0_de/versioning/003_CHANGELOG_RELEASES.MD German mirror: Added 6.1.16 changelog
docs/1_en/versioning/002_HISTORY_VERSIONS.MD English mirror: Added 6.1.16 version entry
docs/1_en/versioning/003_CHANGELOG_RELEASES.MD English mirror: Added 6.1.16 changelog

@tomtastisch tomtastisch merged commit 7f22f8f into main Feb 22, 2026
30 checks passed
@tomtastisch tomtastisch deleted the codex/feat/6-1-16-public-api-analyzers branch February 22, 2026 20:28
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