Gemeenschap

Een klein project, in de openbaarheid geleid

Verso heeft vier maintainers en zo’n zestig bijdragers. Er zit geen bedrijf achter, geen stichting en geen roadmapoverleg — alleen een issuetracker en de afspraak binnen een week te antwoorden.

Bijdragen

Wat helpt, in volgorde

1 · Reproducties

Een falend template plus de data die het probleem veroorzaakt, is meer waard dan een alinea beschrijving. Vijftien regels zijn beter dan een link naar een repository, omdat ze precies laten zien om welke constructie het gaat.

2 · Verbeteringen aan de documentatie

Als iets op deze site fout, verouderd of verwarrend is, is dat een bug. Pull requests voor de documentatie worden als eerste bekeken en het snelst gemerged — meestal op dezelfde dag.

3 · Bugfixes

Een fix met een regressietest heeft één goedkeurende review nodig. Zonder test zijn het er twee, en de discussie gaat uiteindelijk meestal toch over de test.

Voordat je een pull request opent

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

De testsuite draait offline en raakt het netwerk niet aan. Duurt het op jouw machine langer dan vijftien seconden, dan klopt er iets niet en horen we dat graag.

Over nieuwe functies

Open een issue voordat je code schrijft. Het standaardantwoord op een functieverzoek is nee — niet omdat het idee slecht is, maar omdat de waarde van het project in zijn omvang zit. Functies die het halen, halen meestal tegelijk iets anders weg.

Mensen

Maintainers

Vier mensen met mergerechten. Twee van hen reviewen de meeste pull requests; voor een brekende wijziging moeten alle vier akkoord zijn.

Hal Moravec

Parser, compiler, releases. Begon het project in 2021.

Rina Sato

Streaming, prestaties, benchmarks. Onderhoudt de 2.x-lijn.

Júlia Almeida

Documentatie, CLI en de website die je nu leest.

Dmitri Orlov

Escaping, beveiligingsreviews, TypeScript-declaraties.

Bestuur

Hoe besluiten worden genomen

Verso wordt door de maintainers geleid, met een voorkeur voor niets doen. Een wijziging komt erin als minstens één maintainer haar goedkeurt en niemand bezwaar maakt; een bezwaar moet beargumenteerd zijn, en dat argument moet over de code of de reikwijdte gaan, niet over smaak.

Brekende wijzigingen vereisen dat alle vier maintainers akkoord gaan en een gepubliceerd migratiepad. Dat hebben we één keer gedaan, in 3.0, en de discussie duurde vier maanden.

Is een maintainer twaalf maanden inactief, dan vervallen de mergerechten automatisch. Dat is twee keer gebeurd en verliep beide keren zonder ophef, omdat het van tevoren was opgeschreven.

Financiering

Het project neemt geen geld aan. Er zijn geen sponsorniveaus, geen donatielink en geen bedrijf als geldschieter — er valt dus niets openbaar te maken en niemand wiens functieverzoeken zwaarder wegen dan die van anderen. Domein en CI kosten zo’n € 90 per jaar, verdeeld over de maintainers.

Gedragscode

Het Contributor Covenant 2.1, gehandhaafd door de maintainers. Meldingen gaan naar het adres hieronder en worden binnen drie dagen beantwoord. Twee incidenten in vijf jaar, beide afgehandeld met een waarschuwing.

Beveiliging

Een kwetsbaarheid melden

Open geen openbaar issue

Schrijf naar security@example.invalid met een beschrijving en, als je die hebt, een reproductie. De vingerafdruk van de sleutel voor versleutelde meldingen staat in SECURITY.md in de repository.

Wat er daarna gebeurt:

  • Binnen 48 uur — bevestiging dat een mens de melding heeft gelezen.
  • Binnen 7 dagen — een beoordeling: of het een kwetsbaarheid is, welke versies getroffen zijn en een globale datum voor de fix.
  • Binnen 90 dagen — een fix voor elke ondersteunde lijn, een gepubliceerde advisory en vermelding van de melder, tenzij die dat liever niet heeft.

Binnen de scope

Alles waardoor een template of zijn data markup of JavaScript oplevert die de templateauteur niet bedoelde: omzeilen van escaping, fouten in contextherkenning, prototype pollution via het dataobject en denial of service in de parser.

Buiten de scope

Drievoudige accolades die precies doen wat ze zeggen, en templates die door een aanvaller zijn geschreven. Verso compileert templates — een template is code, en als onbetrouwbare mensen je templates kunnen schrijven, is de escapinglaag niet je probleem.

Geschiedenis

AdvisoryGetroffenOpgelostErnst
VERSO-2024-012.0.0 – 2.5.22.5.3Gemiddeld — omzeilen van attribuutescaping bij attributen zonder aanhalingstekens
VERSO-2022-011.0.0 – 1.4.11.4.2Laag — kwadratische parsetijd bij diep geneste blokken
Contact

Waarheen schrijven

Bugs en functies horen in de issuetracker, waar ze doorzoekbaar zijn. Al het andere:

  • security@example.invalid — kwetsbaarheden, zie hierboven
  • conduct@example.invalid — meldingen over de gedragscode
  • maintainers@example.invalid — alles wat niet bij de andere twee past

Er is geen chatserver. We probeerden er in 2022 een; vragen werden één keer beantwoord en verdwenen daarna, wat niemand hielp die een jaar later zocht.