Files
management/docs/adr/0023-fremdhistorie-von-der-git-hygiene-ausnehmen.md
Thore Cimbal 6731d2a70f ADR-0023: fremde Historie erklaert von der Git-Hygiene ausnehmen
Der Upstream-Merge holte 70.265 fremde Commits nach ThreadNet-Web; 39 davon
faerbten die Gruppenpruefung als Echtzeit-Stempel rot. Sie verletzen die
Konvention wirklich, konnten ihr aber nie folgen und werden sich nie aendern -
also ein Dauerrot, und ein Dauerrot meldet nichts mehr (#0104).

Neues Feld fremdhistorie in docs/components/*.md. Wo gesetzt, prueft die
Hygiene nur Commits, die von eigenen Identitaeten COMMITTET wurden. Der
Trennschnitt ist gemessen, nicht geraten: 18 eigene Commits, alle von uns
committet; 39 fremde von GitHub/RiotRobot; keine Ueberschneidung. Der Autor
taugt nicht - eigene Commits koennen fremde Autoren tragen (Cherry-Picks).

Der Feldwert ist die Begruendung, kein Schalter - Muster der Quittungen aus
ADR-0020. Die Ausnahme gilt nur, wo sie deklariert ist, nicht global; der Preis
(ein Commit unter voellig unbekannter Identitaet faellt dort durchs Raster)
steht in den Konsequenzen.

Belegt: nach dem Fix 0 offene Befunde bei 20 Quittungen, und in ThreadNet-Web
werden weiterhin 18 Commits geprueft, alle auf 12:00:00.

Ausserdem zurueckgenommen: mein Nachtrag an ADR-0022. Eine angenommene ADR wird
nicht editiert (Regel in der Vorlage) - die Erkenntnis steht jetzt in #0099.
2026-08-19 12:00:00 +00:00

4.0 KiB

type, id, status, date, supersedes, superseded_by, related
type id status date supersedes superseded_by related
adr 0023 accepted 2026-08-19 null null
docs/adr/0009-commit-konventionen-und-historien-anonymisierung.md
docs/adr/0022-upstream-anschluss-durch-einmaligen-merge.md
docs/issues/0104-daueralarme-melden-nichts-mehr.md

ADR-0023: Fremde Historie von der Git-Hygiene ausnehmen — erklärt, nicht global

Kontext

Der Upstream-Merge aus ADR-0022 hat am 2026-08-19 70.265 fremde Commits in ThreadNet-Web geholt. Sie stammen von Element und tragen deren Zeitstempel und Identitäten.

Die Git-Hygiene-Prüfung aus ADR-0009 (gruppenpruefung.py, Prüfung 5) bemängelte davon sofort 39 Commits als „Echtzeit-Stempel" — alle im Fenster seit der Regel-Grenze 2026-08-07.

Das ist kein Fehlalarm im engeren Sinn: Die Commits verletzen die Konvention wirklich. Sie konnten ihr aber nie folgen, weil sie nicht bei uns entstanden sind, und sie werden sich nie ändern lassen. Damit war die Prüfung dauerhaft rot — genau der Zustand, den #0104 am selben Tag beseitigt hatte. Ein Alarm, der immer rot ist, meldet nichts mehr.

Optionen

A: Quittieren über den Mechanismus aus ADR-0020. Verworfen: 39 Einträge, und die Quittung verlangt eine Frist — hier gäbe es keine, weil sich nichts ändern wird. ADR-0020 lässt „permanent" ausdrücklich nur als ADR zu, was auf diese ADR hinausläuft, aber mit 39 Zeilen Ballast im Quittungs-Log.

B: Regel-Grenze verschieben oder die Prüfung global lockern. Verworfen: Das nähme allen Repos den Schutz, um einem zu helfen.

C: Fremde Absender hart im Code ausnehmen (releases@riot.im, noreply@github.com). Verworfen: Das ist eine Liste, die mit jedem neuen fremden Beitragenden wächst — dieselbe Falle, die MASCHINEN bewusst per Adresse und nicht per Name matched, nur eine Ebene höher.

D: Erklärte Ausnahme pro Komponente. Neues Feld fremdhistorie in docs/components/*.md. Wo es gesetzt ist, prüft die Hygiene nur noch Commits, die von eigenen Identitäten committet wurden.

Entscheidung

Option D (sorb, 2026-08-19: „gruppenprüfung fixen, upstream-commits ausnehmen").

Der Trennschnitt ist der Committer, nicht der Autor. Gemessen an ThreadNet-Web im Fenster seit 2026-08-07: 18 eigene Commits, alle von cfx@riot.8shield.net committet; 39 fremde, committet von GitHub <noreply@github.com> (35) und RiotRobot (4). Keine Überschneidung. Der Autor taugt nicht als Kriterium — unsere eigenen Commits können fremde Autoren tragen (Cherry-Picks), und fremde Commits tragen Autoren, die wie Menschen aussehen.

Der Feldwert ist die Begründung, kein Schalter: Wer die Ausnahme erklärt, sagt, woher die fremden Commits stammen. Das folgt dem Muster der Quittungen aus ADR-0020 — eine Ausnahme ohne Begründung gibt es nicht.

Konsequenzen

  • Die Alarmanlage ist wieder grün und damit wieder aussagekräftig: 0 offene Befunde, 20 quittiert.
  • Die Prüfung bleibt in ThreadNet-Web wirksam — nachgewiesen, nicht angenommen: Nach dem Fix werden dort weiterhin 18 Commits geprüft, alle auf 12:00:00.
  • ⚠️ Der Preis, ehrlich benannt: In Repos mit erklärter Fremdhistorie fällt ein Commit durchs Raster, den jemand von uns unter einer völlig unbekannten Identität erzeugt — also weder eigene Adresse als Autor noch als Committer. Genau diesen Fall fängt die Identitätsprüfung sonst. Deshalb gilt die Ausnahme nur dort, wo sie deklariert ist, und nicht global.
  • Wer künftig ein Repo mit fremder Historie aufnimmt, muss das Feld setzen — sonst färbt die Prüfung rot, und das ist richtig so: Die Ausnahme soll eine bewusste Erklärung sein, kein stiller Nebeneffekt.
  • Nicht gelöst: Der Gitea-Spiegel von ThreadNet-Web scheitert seit demselben Merge am Umfang des Pushs (70.269 Commits, ~600 MB, HTTP 499). Eigener Vorgang.