Community

Ein kleines Projekt, offen geführt

Verso hat vier Maintainer und etwa sechzig Mitwirkende. Es steht keine Firma dahinter, keine Stiftung und kein Roadmap-Meeting — nur ein Issue-Tracker und die Regel, innerhalb einer Woche zu antworten.

Beitragen

Was hilft, in dieser Reihenfolge

1 · Reproduktionen

Ein fehlschlagendes Template plus die Daten, die den Fehler auslösen, ist mehr wert als ein Absatz Beschreibung. Fünfzehn Zeilen schlagen einen Repository-Link, weil sie uns genau zeigen, welches Konstrukt betroffen ist.

2 · Korrekturen an der Doku

Wenn etwas auf dieser Website falsch, veraltet oder verwirrend ist, ist das ein Bug. Doku-Pull-Requests werden zuerst geprüft und am schnellsten gemergt — meist am selben Tag.

3 · Bugfixes

Ein Fix mit Regressionstest braucht ein zustimmendes Review. Ohne Test braucht er zwei, und die Diskussion dreht sich am Ende sowieso meist um den Test.

Bevor Sie einen Pull-Request öffnen

Terminal
$ git clone … && cd verso
$ npm install        # 3 dev dependencies, ~4 s
$ npm test           # unit + snapshot, ~11 s
$ npm run bench      # optional, ~40 s
$ npm run lint

Die Testsuite läuft offline und fasst das Netz nicht an. Braucht sie auf Ihrem Rechner länger als fünfzehn Sekunden, stimmt etwas nicht, und wir würden gern davon hören.

Zu neuen Funktionen

Öffnen Sie ein Issue, bevor Sie Code schreiben. Die Standardantwort auf einen Funktionswunsch ist Nein — nicht weil die Idee schlecht ist, sondern weil der Wert des Projekts in seiner Größe liegt. Funktionen, die es hineinschaffen, entfernen meist gleichzeitig etwas anderes.

Menschen

Maintainer

Vier Personen mit Merge-Rechten. Zwei von ihnen prüfen die meisten Pull-Requests; einer inkompatiblen Änderung müssen alle vier zustimmen.

Hal Moravec

Parser, Compiler, Releases. Hat das Projekt 2021 gestartet.

Rina Sato

Streaming, Performance, Benchmarks. Pflegt die 2.x-Linie.

Júlia Almeida

Dokumentation, CLI und die Website, die Sie gerade lesen.

Dmitri Orlov

Escaping, Sicherheitsreviews, TypeScript-Deklarationen.

Projektsteuerung

Wie Entscheidungen fallen

Verso wird von den Maintainern geführt, mit einer Neigung zum Nichtstun. Eine Änderung landet, wenn mindestens ein Maintainer zustimmt und keiner widerspricht; ein Widerspruch braucht eine Begründung, und die muss den Code oder den Umfang betreffen, nicht den Geschmack.

Inkompatible Änderungen erfordern die Zustimmung aller vier Maintainer und einen veröffentlichten Migrationspfad. Das haben wir einmal getan, in 3.0, und die Diskussion dauerte vier Monate.

Ist ein Maintainer zwölf Monate inaktiv, erlöschen seine Merge-Rechte automatisch. Das ist zweimal passiert und lief beide Male ohne Aufregung, weil es vorher aufgeschrieben war.

Finanzierung

Das Projekt nimmt kein Geld. Es gibt keine Sponsoring-Stufen, keinen Spendenlink und keinen Firmen-Unterstützer — also gibt es nichts offenzulegen und niemanden, dessen Funktionswünsche mehr wiegen als die anderer. Domain und CI kosten etwa 90 € im Jahr, aufgeteilt unter den Maintainern.

Verhaltenskodex

Der Contributor Covenant 2.1, durchgesetzt von den Maintainern. Meldungen gehen an die Adresse unten und werden innerhalb von drei Tagen beantwortet. Zwei Vorfälle in fünf Jahren, beide mit einer Verwarnung erledigt.

Sicherheit

Eine Sicherheitslücke melden

Eröffnen Sie kein öffentliches Issue

Schreiben Sie an security@example.invalid mit einer Beschreibung und, falls vorhanden, einer Reproduktion. Der Fingerabdruck des Schlüssels für verschlüsselte Meldungen steht in SECURITY.md im Repository.

Was danach passiert:

  • Innerhalb von 48 Stunden — Bestätigung, dass ein Mensch die Meldung gelesen hat.
  • Innerhalb von 7 Tagen — eine Einschätzung: ob es eine Sicherheitslücke ist, welche Versionen betroffen sind und ein grober Termin für den Fix.
  • Innerhalb von 90 Tagen — ein Fix für jede unterstützte Linie, ein veröffentlichtes Advisory und Nennung der meldenden Person, sofern sie nichts anderes wünscht.

Im Rahmen

Alles, was ein Template oder seine Daten Markup oder JavaScript erzeugen lässt, das der Template-Autor nicht beabsichtigt hat: Umgehungen des Escapings, Fehler bei der Kontexterkennung, Prototype Pollution über das Datenobjekt und Denial of Service im Parser.

Außerhalb des Rahmens

Dreifache Klammern, die genau das tun, was sie sagen, und Templates, die ein Angreifer geschrieben hat. Verso kompiliert Templates — ein Template ist Code, und wenn nicht vertrauenswürdige Personen Ihre Templates schreiben können, ist die Escaping-Schicht nicht Ihr Problem.

Historie

AdvisoryBetroffenBehobenSchwere
VERSO-2024-012.0.0 – 2.5.22.5.3Mittel — Umgehung des Attribut-Escapings bei Attributen ohne Anführungszeichen
VERSO-2022-011.0.0 – 1.4.11.4.2Niedrig — quadratische Parsezeit bei tief verschachtelten Blöcken
Kontakt

Wohin schreiben

Bugs und Funktionswünsche gehören in den Issue-Tracker, wo man sie durchsuchen kann. Alles andere:

  • security@example.invalid — Sicherheitslücken, siehe oben
  • conduct@example.invalid — Meldungen zum Verhaltenskodex
  • maintainers@example.invalid — alles, was nicht zu den anderen beiden passt

Einen Chat-Server gibt es nicht. Wir haben 2022 einen ausprobiert; Fragen wurden einmal beantwortet und verschwanden dann, was niemandem half, der ein Jahr später suchte.