Work Items
Work Items führt typisierte Arbeitselemente — Epic, Feature, Story, Task, Bug — mit erzwungenem Zustandsmodell, typisierten Beziehungen, Verlauf und einem Editor, der gleichzeitige Änderungen zurückweist statt sie zu vermischen. Es ist das Kernpaket der Suite: Boards, Abfragen und Dashboard beziehen von hier ihre Elemente. Gedacht ist es für Projektbeteiligte, die Arbeit erfassen und weiterbewegen.
Erste Schritte
Schnelleinstieg: Das erste Arbeitselement anlegen — der kürzeste Weg zum ersten Ergebnis, in drei Schritten.
Element anlegen → Beziehung setzen → Momentaufnahme im Wiki ablegen
Häufige Aufgaben
| Was Sie wollen | Für wen | Wo Sie das tun | Anleitung |
|---|---|---|---|
| ein Arbeitselement anlegen | Projektbeteiligte | do=wkdoworkitems_new auf einer Projektseite | Zweck |
| ein Arbeitselement bearbeiten | Projektbeteiligte | do=wkdoworkitems_edit | Zweck |
| eine Beziehung zwischen zwei Elementen setzen | Projektbeteiligte | Editor | Beziehungen: eine Richtung genügt |
| verstehen, warum ein Speichern zurückgewiesen wird | Projektbeteiligte | – | Nebenläufigkeit |
| ein Element als Wiki-Seite ablegen | Projektbeteiligte | Editor | Momentaufnahmen im Wiki |
| herausfinden, warum jemand nicht bearbeiten darf | Verwaltung | – | Rechte |
| Elemente als Karten sehen | Projektbeteiligte | – | Boards |
Zweck
Typisierte Arbeitselemente mit erzwungenem Zustandsmodell und typisierten Beziehungen, dazu ein rechtegeprüfter Editor mit Historie und optimistischer Nebenläufigkeitsprüfung sowie ein Momentaufnahme-Export, der eine für sich lesbare Seite im Wiki hinterlässt.
Es ist das Kernpaket der DWDO-Suite: Boards, Queries und Dashboard beziehen von hier ihre Elemente, Zustände, Typen und Felder. Ohne dieses Plugin haben die drei nichts anzuzeigen.
Ein Arbeitselement gehört immer zu einem Projekt (siehe DevOps Core); diese Grenze wird erzwungen, nicht angenommen. Die Ablage liefert DevOps Storage Plugin.
Beziehungen: eine Richtung genügt
Beziehungen sind typisiert, und bei einer gerichteten Beziehung muss nur eine Richtung angegeben werden — die Gegenrichtung wird mitgeschrieben. Dadurch liest sich eine Verknüpfung von beiden Enden her stimmig, ohne dass jemand zweimal dasselbe eintragen muss.
Vor jedem Schreibvorgang prüft ein Wächter und weist zurück:
- eine Beziehung eines Elements auf sich selbst
- einen Zyklus
- eine nach dem Beziehungsvokabular unzulässige Paarung
Nebenläufigkeit: zurückweisen statt zusammenführen
Ein Speichervorgang, dessen Grundlage sich inzwischen bewegt hat, wird abgelehnt, statt die Arbeit eines anderen zu überschreiben. Geprüft wird an zwei Signalen: einer Versionsmarke und einem Feld-Fingerabdruck.
Wer die Ablehnung im eigenen Code behandelt, meldet die geänderten Felder und schickt nicht mit frischer Grundlage erneut ab; das wäre genau das Überschreiben, das die Prüfung verhindern soll.
Momentaufnahmen im Wiki
Eine Beschreibung lässt sich als Wiki-Seite exportieren, wenn sie für sich lesbar sein soll. Die
Revisionszusammenfassung trägt dabei ein Präfix, voreingestellt [WI].
Konfiguration
| Einstellung | Vorgabe | Bedeutung |
|---|---|---|
historylimit | 100 | Prüfspurzeilen in der Historienansicht. Begrenzt die Anzeige, nicht die Aufzeichnung |
enabledirtyguard | 1 | Warnung bei ungespeicherten Änderungen; reine Verbesserung, ohne Skript entfällt nur die Warnung |
descrawmode | escape | Maskierung der Beschreibung in Momentaufnahmen: escape oder nowiki |
exportsummaryprefix | [WI] | Präfix der Revisionszusammenfassung exportierter Seiten |
maxrenderpeers | 200 | Obergrenze dargestellter Beziehungen und Kinder |
descrawmode verdient eine Entscheidung, keine Vorgabe. Welcher Wert richtig ist, hängt
davon ab, ob Beschreibungen vertrauenswürdige Prosa sind oder beliebiger Text, der nicht als
Auszeichnung ausgelegt werden darf. Die Einstellung wirkt beim Export: bereits exportierte
Seiten behalten ihre Form, wenn sie geändert wird.
maxrenderpeers ist ebenso eine Schutzmaßnahme gegen Überlastung wie eine Anzeigegrenze. Ein
Element mit Hunderten unmittelbarer Nachbarn deutet meist auf eine fehlende Zwischenebene hin und
nicht auf eine zu niedrig gesetzte Grenze.
Rechte
- Jede Operation prüft die Projektzugehörigkeit. Mengenoperationen haben eine eigene Zusicherung, weil eine Liste von Kennungen genau der Ort ist, an dem eine fremde Kennung unbemerkt durchrutscht.
- Jede Änderung trägt einen Handelnden, sodass sie in der Prüfspur zurechenbar bleibt.
Voraussetzungen
- PHP 8.2 oder neuer.
- Core Plugin, DevOps Core für Projektkontext und Rollen, DevOps Storage Plugin für Arbeitselemente, Beziehungen, Prüfspur und Einstellungen.
- Keine Schemaänderung nötig — die ausgelieferten Repositorien stellen bereits alles bereit, was dieses Plugin benutzt.
- Ein Projekt muss zuerst bestehen.
Grenzen
- Kein automatisches Zusammenführen, ausdrücklich — siehe oben.
maxrenderpeerskürzt die Ansicht, nicht die Daten.- Die Warnung vor ungespeicherten Änderungen braucht Skripting. Ohne Skript funktioniert das Formular unverändert; nur die Warnung fehlt.
- Momentaufnahmen aktualisieren sich nicht mit.
Paketangaben
Plugin: wkdoworkitems
Namespace: lib/plugins/wkdoworkitems/
Autor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Lizenz: GPL 2