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.
82 lines
4.0 KiB
Markdown
82 lines
4.0 KiB
Markdown
---
|
|
type: adr
|
|
id: "0023"
|
|
status: accepted
|
|
date: 2026-08-19
|
|
supersedes: null
|
|
superseded_by: null
|
|
related:
|
|
- "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](0022-upstream-anschluss-durch-einmaligen-merge.md)
|
|
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](0009-commit-konventionen-und-historien-anonymisierung.md)
|
|
(`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](../issues/0104-daueralarme-melden-nichts-mehr.md) 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.
|