Skip to content

Commit 1a1c2f6

Browse files
tomtastischgithub-actions[bot]Copilot
authored
release(core): PR-108-Audit wiederherstellen und Version-SSOT auf 6.0.0 stabilisieren (#116)
* docs(governance): add full PR-108 review audit matrix with evidence * release(versioning): align active convergence to 6.0.0 * docs(governance): add reimplementation evidence for PR-108 file set * fix(docs): normalize truncated URLs in PR-108 audit matrix * docs(versioning): remove deferred 6.0.1 section from EN changelog * docs(versioning): drop deferred 6.0.1 row from DE history * docs(versioning): drop deferred 6.0.1 row from EN history * docs(versioning): remove deferred 6.0.1 section from DE changelog * docs(governance): fix typo Aehnlichkeit in PR108 audit matrix * docs(governance): korrigiere Tippfehler nicht in Audit-Tabelle * docs(governance): korrigiere zweites nicht in Audit-Tabelle * docs(governance): korrigiere Benennung in Audit-Tabelle * docs(versioning): align EvidenceHashingIO spelling in DE changelog * docs(governance): remove markdown code-fence fragments from audit table * docs(governance): clarify historical 6.0.1 context in PR108 audit rows * style(props): normalize Directory.Build.props indentation * docs(infrastructure): complete XML docs and logic block comments * docs(abstractions): ergaenze konstruktor-xml-dokumentation * style(core): richte Dim-Deklarationen spaltenweise aus * Update src/FileTypeDetection/Infrastructure/ArchiveInternals.vb Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Tomtastisch <82227609+tomtastisch@users.noreply.github.com> * style(vb): enforce Dim block alignment across FileTypeDetection * fix(config): stabilisiere Builder-Syntax in Registry-Konfiguration * fix(core): stabilisiere filekind-kompatibilitaet und policy-formatierung --------- Signed-off-by: Tomtastisch <82227609+tomtastisch@users.noreply.github.com> Co-authored-by: GitHub Copilot Agent <github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 988a990 commit 1a1c2f6

41 files changed

Lines changed: 1137 additions & 298 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,16 @@ Abweichung ist blocker und vor Merge/Release zu beheben.
109109
## 10) Lokale Overrides
110110
- Optional: `AGENTS.override.md` wird zusaetzlich angewendet.
111111
- `AGENTS.override.md` ist lokal-only und darf nicht committed werden.
112+
113+
## 11) VB.NET Deklarationsstil (verbindlich)
114+
- Lokale Variablendeklarationen mit `Dim` werden in zusammenhängenden Blöcken spaltenweise ausgerichtet.
115+
- Ausrichtung erfolgt mindestens über diese Spalten:
116+
- `Dim`
117+
- Variablenname
118+
- `As <Typ>`
119+
- optionale Initialisierung `= <Wert>`
120+
- Die Einrückung startet linksbündig identisch je Block.
121+
- Beispiel:
122+
- `Dim hasContentTypes As Boolean = False`
123+
- `Dim hasOpenDocumentConflict As Boolean = False`
124+
- `Dim candidateOpenDocumentKind As FileKind`

Directory.Build.props

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<Project>
2-
<PropertyGroup>
3-
<Deterministic>true</Deterministic>
4-
<ContinuousIntegrationBuild Condition="'$(CI)' == 'true'">true</ContinuousIntegrationBuild>
5-
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
6-
</PropertyGroup>
72
<PropertyGroup>
8-
<RepoVersion>6.0.1</RepoVersion>
3+
<Deterministic>true</Deterministic>
4+
<ContinuousIntegrationBuild Condition="'$(CI)' == 'true'">true</ContinuousIntegrationBuild>
5+
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
6+
</PropertyGroup>
7+
<PropertyGroup>
8+
<RepoVersion>6.0.0</RepoVersion>
99
</PropertyGroup>
1010
</Project>

docs/governance/047_PR_108_REVIEW_AUDIT_DE.MD

Lines changed: 84 additions & 0 deletions
Large diffs are not rendered by default.

docs/versioning/002_HISTORY_VERSIONS.MD

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,20 @@
66

77
Diese Tabelle wurde aus der Commit-Historie anhand der Policy in
88
`docs/versioning/001_POLICY_VERSIONING.MD` abgeleitet.
9-
Heuristik fuer die Rueckwirkungs-Zuordnung:
9+
Heuristik für die Rückwirkungs-Zuordnung:
1010
- Major-Overrides: `5255724`, `fd03389`
1111
- `feat:` oder `Add ...` (nicht-Doku) => Minor
1212
- `docs|test|ci|chore|tooling|refactor|fix` => Patch
1313

1414
Aktueller Entwicklungsstand:
15-
- Aktuelle Entwicklungslinie enthaelt `6.x` (aktueller Arbeitsstand: `v6.0.1`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).
15+
- Aktuelle Entwicklungslinie enthält `6.x` (aktueller Arbeitsstand: `v6.0.0`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).
1616

1717
Hinweis:
1818
- Die Spalte `Keyword` verwendet den technischen Klassifizierungswert aus der Historie.
1919
- Einzelne Committitel bleiben in der Originalsprache, wenn sie als exakter Quelltextnachweis uebernommen wurden.
2020

2121
| Version | Kurzbeschreibung | Commit | Keyword |
2222
|---|---|---|---|
23-
| `6.0.1` | Refactor-Haertung: interne SSOT-Utilities nach `Infrastructure/Utils` konsolidiert, Core-Utility-Logik in dedizierte Dateien gesplittet und Duplikat-Guards vereinheitlicht | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/v5.2.1...HEAD) | patch |
2423
| `6.0.0` | Breaking-Release: `FileKind`-Enum und `HashRoundTripReport`-Public-API auf neues Slot-/Methodenmodell umgestellt, Hashing-Interna in Core/RoundTrip/Io ausgelagert | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/v5.2.1...HEAD) | breaking |
2524
| `5.2.1` | SharpCompress-API auf typsichere Aufrufe umgestellt, tar.gz-Verarbeitung fail-closed gehaertet und Qodana-CI-Gate als Pflichtlauf dokumentiert/erzwungen | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/v5.2.0...HEAD) | patch |
2625
| `5.2.0` | netstandard2.0-Compat-Layer eingefuehrt, Provider-Struktur konsolidiert und TFM-Multi-Targeting erweitert | [8d65a52](https://github.com/tomtastisch/FileClassifier/commit/8d65a52) | minor |

docs/versioning/003_CHANGELOG_RELEASES.MD

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,20 @@
44

55
# Changelog
66

7-
Alle Aenderungen werden hier technisch dokumentiert. Die Release-Version selbst ist
7+
Alle Änderungen werden hier technisch dokumentiert. Die Release-Version selbst ist
88
der Git-Tag `vX.Y.Z` (optional `-prerelease`) als SSOT.
99

10-
## [6.0.1]
11-
- Added:
12-
- Neues internes Submodul `src/FileTypeDetection/Infrastructure/Utils/` als SSOT fuer wiederverwendbare Guard-/I/O-/Pfad-/Logging-Helfer.
13-
- Changed:
14-
- Utility-Klassen aus `CoreInternals.vb` in dedizierte Dateien unter `Infrastructure/Utils` ausgelagert; `CoreInternals.vb` auf Refinement-Logik fokussiert.
15-
- Vorhandene Utils von `src/FileTypeDetection/Utils/` nach `src/FileTypeDetection/Infrastructure/Utils/` verschoben und Namespace auf `Tomtastisch.FileClassifier.Infrastructure.Utils` konsolidiert.
16-
- Duplizierte Byte-Array-Guard-Checks auf `ByteArrayGuard.HasContent(...)` vereinheitlicht.
17-
- Docs/CI/Tooling:
18-
- Versionskonvergenz auf `6.0.1` nachgezogen (`RepoVersion`, `Version`, `PackageVersion`, Versionshistorie DE/EN).
19-
2010
## [6.0.0]
2111
- Added:
22-
- Neue interne Hashing-Services (`EvidenceHashingCore`, `EvidenceHashingRoundTrip`, `EvidenceHashingIo`) fuer deterministische Auslagerung ohne neue Dependencies.
12+
- Neue interne Hashing-Services (`EvidenceHashingCore`, `EvidenceHashingRoundTrip`, `EvidenceHashingIO`) für deterministische Auslagerung ohne neue Dependencies.
2313
- Changed:
2414
- Breaking-Umstellung von `FileKind`-Werten (`Docx`/`Xlsx`/`Pptx` -> `Doc`/`Xls`/`Ppt`).
2515
- Breaking-Umstellung der `HashRoundTripReport`-Public-API auf Slot-basiertes Zugriffsmodell (`HashSlot`, `Evidence(...)`, `LogicalEquals(...)`, `PhysicalEquals(...)`).
2616
- `EvidenceHashing` auf Fassade reduziert; Kernlogik in interne stateless Services verschoben.
2717
- Fixed:
2818
- Reflection-basierte Unit-Tests auf neue interne Hashing-Typen angepasst.
2919
- Docs/CI/Tooling:
30-
- Versionskonvergenz lokal auf `6.0.0` vorbereitet (`RepoVersion`, `Version`, `PackageVersion`, Versionshistorie DE/EN).
20+
- Versionskonvergenz aktiv auf `6.0.0` gesetzt (`RepoVersion`, `Version`, `PackageVersion`, Versionshistorie DE/EN).
3121

3222
## [5.2.1]
3323
- Added:

docs/versioning/102_HISTORY_VERSIONS.MD

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

1414
Current state:
15-
- Current release line contains `6.x` (current working state: `v6.0.1`; details in `docs/versioning/103_CHANGELOG_RELEASES.MD`).
15+
- Current release line contains `6.x` (current working state: `v6.0.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.
1919

2020
| Version | Short description | Commit | Keyword |
2121
|---|---|---|---|
22-
| `6.0.1` | Refactor hardening: consolidated internal SSOT utilities into `Infrastructure/Utils`, split core utility logic into dedicated files, and unified duplicate byte guards | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/v5.2.1...HEAD) | patch |
2322
| `6.0.0` | Breaking release: migrated `FileKind` enum and `HashRoundTripReport` public API to the new slot/method model and split hashing internals into core/roundtrip/io services | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/v5.2.1...HEAD) | breaking |
2423
| `5.2.1` | Switched SharpCompress calls to type-safe APIs, hardened tar.gz fail-closed handling, and enforced/documented Qodana CI as a mandatory gate | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/v5.2.0...HEAD) | patch |
2524
| `5.2.0` | Introduce netstandard2.0 compatibility layer, consolidate provider structure, and extend TFM multi-targeting | [8d65a52](https://github.com/tomtastisch/FileClassifier/commit/8d65a52) | minor |

docs/versioning/103_CHANGELOG_RELEASES.MD

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,6 @@
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-
## [6.0.1]
10-
- Added:
11-
- New internal submodule `src/FileTypeDetection/Infrastructure/Utils/` as the SSOT for reusable guard/I/O/path/logging helpers.
12-
- Changed:
13-
- Moved utility classes from `CoreInternals.vb` into dedicated files under `Infrastructure/Utils`; narrowed `CoreInternals.vb` to refinement logic.
14-
- Relocated existing utils from `src/FileTypeDetection/Utils/` to `src/FileTypeDetection/Infrastructure/Utils/` and consolidated the namespace to `Tomtastisch.FileClassifier.Infrastructure.Utils`.
15-
- Unified duplicate byte-array guard checks to `ByteArrayGuard.HasContent(...)`.
16-
- Docs/CI/Tooling:
17-
- Updated version convergence to `6.0.1` (`RepoVersion`, `Version`, `PackageVersion`, version history DE/EN).
18-
199
## [6.0.0]
2010
- Added:
2111
- New internal hashing services (`EvidenceHashingCore`, `EvidenceHashingRoundTrip`, `EvidenceHashingIo`) for deterministic extraction without adding dependencies.
@@ -26,7 +16,7 @@ All changes are documented here in technical terms. The release version itself i
2616
- Fixed:
2717
- Updated reflection-based unit tests to the new internal hashing types.
2818
- Docs/CI/Tooling:
29-
- Prepared local version convergence to `6.0.0` (`RepoVersion`, `Version`, `PackageVersion`, version history DE/EN).
19+
- Set active version convergence to `6.0.0` (`RepoVersion`, `Version`, `PackageVersion`, version history DE/EN).
3020

3121
## [5.2.1]
3222
- Added:

src/FileTypeDetection/Abstractions/Archive/ZipExtractedEntry.vb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ Namespace Global.Tomtastisch.FileClassifier
3737
''' </summary>
3838
Public ReadOnly Property Size As Integer
3939

40+
''' <summary>
41+
''' Initialisiert ein unveränderliches In-Memory-Modell für einen Archiveintrag.
42+
''' </summary>
43+
''' <param name="entryPath">Normalisierter relativer Eintragspfad.</param>
44+
''' <param name="payload">Extrahierter Byteinhalt des Eintrags.</param>
4045
Friend Sub New _
4146
(
4247
entryPath As String,

src/FileTypeDetection/Abstractions/Detection/DetectionDetail.vb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,14 @@ Namespace Global.Tomtastisch.FileClassifier
4444
''' </summary>
4545
Public ReadOnly Property ExtensionVerified As Boolean
4646

47+
''' <summary>
48+
''' Initialisiert ein detailliertes Detektionsergebnis.
49+
''' </summary>
50+
''' <param name="detectedType">Finaler, nach allen Policies ermittelter Dateityp.</param>
51+
''' <param name="reasonCode">Deterministischer Reason-Code für den Entscheidungspfad.</param>
52+
''' <param name="usedZipContentCheck">Kennzeichnet eine inhaltsbasierte Archivprüfung.</param>
53+
''' <param name="usedStructuredRefinement">Kennzeichnet ein strukturiertes Archiv-Refinement.</param>
54+
''' <param name="extensionVerified">Kennzeichnet die bestätigte Endungsprüfung.</param>
4755
Friend Sub New _
4856
(
4957
detectedType As FileType,

src/FileTypeDetection/Abstractions/Detection/FileType.vb

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Namespace Global.Tomtastisch.FileClassifier
2828
''' <summary>Enum-Schlüssel des Typs.</summary>
2929
Public ReadOnly Property Kind As FileKind
3030

31-
''' <summary>Kanonische Endung inklusive Punkt, bei Unknown leer.</summary>
31+
''' <summary>Kanonische Endung inklusive Punkt, bei UNKNOWN leer.</summary>
3232
Public ReadOnly Property CanonicalExtension As String
3333

3434
''' <summary>Kanonischer MIME-Typ als Metadatum, kann leer sein.</summary>
@@ -44,6 +44,14 @@ Namespace Global.Tomtastisch.FileClassifier
4444
''' </summary>
4545
Public ReadOnly Property Aliases As ImmutableArray(Of String)
4646

47+
''' <summary>
48+
''' Initialisiert ein unveränderliches Dateityp-Wertobjekt.
49+
''' </summary>
50+
''' <param name="kind">Enum-Schlüssel des Dateityps.</param>
51+
''' <param name="canonicalExtension">Kanonische Endung inklusive Punkt.</param>
52+
''' <param name="mime">Kanonischer MIME-Typ als Metadatum.</param>
53+
''' <param name="allowed">Kennzeichnet die Policy-Zulässigkeit.</param>
54+
''' <param name="aliases">Aliasmenge für Endungszuordnung.</param>
4755
Friend Sub New _
4856
(
4957
kind As FileKind,
@@ -53,8 +61,8 @@ Namespace Global.Tomtastisch.FileClassifier
5361
aliases As IEnumerable(Of String)
5462
)
5563

56-
Dim dedup As HashSet(Of String) = New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
57-
Dim n As String
64+
Dim dedup As HashSet(Of String) = New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
65+
Dim n As String
5866
Dim orderedAliases As List(Of String)
5967

6068
Me.Kind = kind
@@ -83,7 +91,6 @@ Namespace Global.Tomtastisch.FileClassifier
8391
''' </summary>
8492
''' <returns>String-Repräsentation des Feldes <see cref="Kind"/>.</returns>
8593
Public Overrides Function ToString() As String
86-
8794
Return Kind.ToString()
8895
End Function
8996
End Class

0 commit comments

Comments
 (0)