Entwurf · Issue 8b1babd
Die Zeile sagt, was läuft
Produktion lief auf einem Tag, den niemand sah, und main war Wochen weiter. Die Frage „ist das hier das Aktuelle?" beantwortete niemand — obwohl jede Zutat dafür schon im Baum lag.
Unter dem Konto-Block steht jetzt eine Zeile: was hier läuft, und wie weit der Seed davor liegt. Sie erfindet keine neue Wahrheit — lib/self.ts kannte den Commit, readRefs liefert die Tags, codeContext rechnete die Drift bereits aus. Neu ist ein Leser, der aus beidem eine Release macht, und ein Ort, an dem eine Person sie ohne Suchen sieht.
01Vier Zustände, ein Leser
Trägt der laufende Commit einen Tag, steht der Tag da. Sonst der Kurz-Commit — nie eine Version, die es nicht gibt. Ohne BUILD_COMMIT ist die Antwort dev: next dev läuft auf keinem gebauten Stand, und den Kopf des Seeds hinzuschreiben würde eine Revision nennen, die dieser Prozess nie ausgeführt hat.
- hältein getaggter Commit heißt nach seinem Tag (v0.35.0)
- hältein ungetaggter heißt nach seinem Kurz-Commit (48ce7a8)
- hältohne BUILD_COMMIT ist die Antwort dev, nicht der Kopf des Seeds
02Unbekannt ist nicht aktuell
Der Seed kann schweigen. Eine Versionszeile, die dann verschwindet, wäre schlechter als eine, die sagt, dass sie es nicht weiß: was hier läuft, kommt aus einer Datei im Container und bleibt wahr, was immer das Netz tut. behind: null heißt deshalb nicht festgestellt und nie „aktuell" — dieselbe Unterscheidung, die die Kette zwischen NO und -- zieht. readLogCount antwortet mit 0, wenn es gar nicht lesen kann, und keine gültige Revision hat null Commits hinter sich.
- hältein Seed ohne Antwort lässt den Abstand unbekannt — und die Zeile stehen
- hältein antwortender Seed nennt die Zahl (15 Commits)
- hältderselbe Commit ist null entfernt, ohne dass irgendwer zählen muss
03Die Zeile reicht den Schritt, sie geht ihn nicht
Promotion bleibt zwei bewusste Handgriffe: ein Tag hier löst den signierten Image-Build aus, und der Pin in mosaik bewegt die Produktion. Ein Knopf in der laufenden Anwendung, der die laufende Anwendung austauschen könnte, ist genau das, wogegen diese Invariante steht. Das Panel nennt beide Schritte und kopiert sie — es führt keinen aus.
- 1. Cut a release here — the tag triggers the signed image build.
just release vX.Y.Z - 2. Bump the pinned tag in mosaik, through a patch there. Flux pulls within the minute.
k8s/clusters/mosaik/applications/start-complex/start-complex/app/deployment.yaml
04Was die Seite nicht sehen kann
Ob der Seed heute erreichbar ist, ob ein BUILD_COMMIT im Container liegt, und was die Zeile in diesem Moment anzeigt — das weiß nur der laufende Container, nicht diese Seite. Zwei Dinge, die diese Arbeit gegen den echten Seed festgestellt hat, stehen deshalb im Plan statt hier: dass das Gate annotierte Tags peelt (der Tag-Objekt-Id ist eine andere als die des Commits, und CI schreibt den Commit), und dass der Abstand die Antwort des Seeds ist — bei einem privaten Repository ohne Gossip kann der niedriger liegen als ein lokales git log.