Entwurf · Issue 852f19b
Ein Issue sagt, worauf es wartet
Vierunddreißig needs/-Etiketten tragen die Reihenfolge dieses Repositories, und keine Zeile im Baum liest eines davon.
Das Board stellt drei Fragen pro Karte — gibt es das Issue, gibt es seinen Plan, ist der Plan freigegeben. Alle drei können ja sein, während die Karte nicht begonnen werden kann, weil das, worauf sie wartet, noch nicht gebaut ist. Für einen Menschen ist das harmlos, denn der Mensch hat die Etiketten gesetzt. Für einen Runner ist es der Fehler, der zählt.
01Was heute passiert
lib/board.ts zählt die Präfixe auf, die es kennt — col/, cycle/, prio/, lvl/, due/, plan/approved, effort/, map, kind/ — und lässt alles andere als einfaches Etikett durch. Das ist die richtige Voreinstellung: einen Tippfehler zu schlucken hieße, ihn genau dort zu verstecken, wo der Tippende ihn sucht. Hier bedeutet es, dass jede der vierunddreißig Kanten als Dekoration endet.
- hälteine repo-lokale Kante verlässt die Etikettenliste
- hälteine repo-qualifizierte Kante verlässt sie ebenfalls
- hältein kaputtes needs/ bleibt ein sichtbares Etikett
Die dritte Zeile ist heute grün und muss es bleiben. Die ersten beiden sind der Auftrag.
02Was eine Kante erfüllt
rad kennt drei Zustände, lib/cob.ts faltet zwei davon zu closed und hebt den Grund daneben auf. Nähme man closed beim Wort, würde das Aufgeben einer Voraussetzung alle Karten dahinter schlagartig bereit machen — das Versagen fiele nach grün.
- Nur
solvederfüllt. Eine Karte, die alsothergeschlossen wurde, gilt als abgebrochen, und was auf sie wartet, wartet weiter. - Unauflösbar blockiert. Eine Kante auf eine Id, die diese Sitzung nicht sehen kann — falsche Id, mehrdeutiges Präfix, unbekanntes Repository — macht die Karte unaufnehmbar. Dieselbe Regel wie
ok: nullinlib/chain.ts: „wir haben nicht nachgesehen" und „wir haben nachgesehen und es ist nicht da" bleiben verschiedene Antworten, und keine davon geht durch. readyist direkt, nicht transitiv. Bereit heißt: kann jetzt begonnen werden. Die Tiefe der Kette wird trotzdem gerechnet — als Sortierschlüssel, damit die Frontier eines Efforts nicht eine Karte nach oben stellt, die fünf Glieder tief liegt.- Und sie ist verdient oder unbehauptet.
edges.every(solved)ist auf einer Karte ohne Kante leer-wahr: sie meldete dasselbe Wort wie eine, deren Voraussetzungen alle aufgegangen sind. Das eine ist eine Aussage, die jemand gemacht hat und die die Arbeit eingelöst hat, das andere das Fehlen einer Aussage. Beide dürfen begonnen werden — nur eine wurde je behauptet, und ein Board, das für beide „bereit" sagt, antwortet an Stelle des Autors (da0d198).
- hälteine Karte, deren genannte Voraussetzung solved ist, ist verdient bereit
- hälteine Karte, die keine nennt, ist unbehauptet — nicht dasselbe Wort
- hältbeide sind startbar, und ready:no bleibt die Warteschlange, die es war
03Über das Repository hinaus
Zwei Kanten verlassen dieses Repository bereits: 2cf36f0 wartet auf tessera-cli 7815265, und tessera-cli 57e9581 wartet auf 77a0811 hier. Beide standen in repo-lokaler Schreibweise und zeigten damit auf nichts Auffindbares — eines der Ziele sah wie ein Tippfehler aus, bis jemand danach suchte.
Die Schreibweise wird needs/<repo>/<id>. Eine volle RID hat vierunddreißig Zeichen und macht jede Tabelle unlesbar, in der sie steht — und lesbar in rad issue list zu bleiben ist der Grund, warum die Reihenfolge überhaupt in der Etikettengrammatik wohnt. Ein Ziel in einem anderen Repository wird genannt, nicht verlinkt: /code steht auf SELF_RID, ein Link ginge ins Leere.
Was diese Seite nicht sehen kann: ob diese zwei Kanten heute auflösen. Dafür bräuchte sie einen Seed, und sie spricht mit keinem. Die Frage beantwortet just edges und die Suite, nicht dieses Kapitel.
04Was hier nicht steht
- Das Bild. Der Graph ist
0e0ba05, im selben Effort. Dieses Kapitel schuldet die Kanten und die Antwort, nicht die Zeichnung. - Das Gate. Es behält seine sieben Glieder. Eine Reihenfolge ist eine Planungsaussage, und die darf sich ändern, ohne fertige Arbeit unbaubar zu machen.
- Ein zweiter Speicher. Die Kanten liegen im COB und werden beim Lesen gerechnet, wie jeder andere Index hier.