Społeczność

Mały projekt, prowadzony otwarcie

Verso ma czterech opiekunów i około sześćdziesięciu współtwórców. Nie stoi za nim firma, fundacja ani spotkania o planach — tylko tracker zgłoszeń i zasada odpowiadania w ciągu tygodnia.

Współtworzenie

Co pomaga, po kolei

1 · Reprodukcje

Szablon, który nie działa, plus dane, które wywołują błąd, są warte więcej niż akapit opisu. Piętnaście linii jest lepsze niż link do repozytorium, bo dokładnie pokazuje, której konstrukcji dotyczy problem.

2 · Poprawki dokumentacji

Jeśli coś na tej stronie jest błędne, nieaktualne lub mylące, to błąd. Pull requesty do dokumentacji przeglądamy jako pierwsze i scalamy najszybciej — zwykle tego samego dnia.

3 · Poprawki błędów

Poprawka z testem regresji potrzebuje jednej akceptującej recenzji. Bez testu — dwóch, a dyskusja i tak zwykle kończy się na teście.

Zanim otworzysz pull request

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

Zestaw testów działa offline i nie dotyka sieci. Jeśli na twoim komputerze trwa dłużej niż piętnaście sekund, coś jest nie tak i chcielibyśmy o tym wiedzieć.

O nowych funkcjach

Otwórz zgłoszenie, zanim napiszesz kod. Domyślna odpowiedź na prośbę o funkcję to nie — nie dlatego, że pomysł jest zły, lecz dlatego, że wartość projektu leży w jego rozmiarze. Funkcje, które trafiają do projektu, zwykle jednocześnie coś usuwają.

Ludzie

Opiekunowie

Cztery osoby z prawem scalania. Dwie z nich recenzują większość pull requestów; na zmianę niekompatybilną muszą zgodzić się wszyscy czworo.

Hal Moravec

Parser, kompilator, wydania. Założył projekt w 2021 roku.

Rina Sato

Strumieniowanie, wydajność, benchmarki. Utrzymuje linię 2.x.

Júlia Almeida

Dokumentacja, CLI i strona, którą właśnie czytasz.

Dmitri Orlov

Escapowanie, przeglądy bezpieczeństwa, deklaracje TypeScriptu.

Zarządzanie

Jak zapadają decyzje

Verso jest prowadzone przez opiekunów, ze skłonnością do niezmieniania niczego. Zmiana trafia do projektu, gdy co najmniej jeden opiekun ją zaakceptuje i nikt nie zgłosi sprzeciwu; sprzeciw musi mieć uzasadnienie dotyczące kodu lub zakresu, a nie gustu.

Zmiany niekompatybilne wymagają zgody wszystkich czterech opiekunów i opublikowanej ścieżki migracji. Zrobiliśmy to raz, w 3.0, a dyskusja trwała cztery miesiące.

Jeśli opiekun jest nieaktywny przez dwanaście miesięcy, jego prawo scalania wygasa automatycznie. Zdarzyło się to dwa razy i za każdym razem bez emocji, bo było spisane z góry.

Finansowanie

Projekt nie przyjmuje pieniędzy. Nie ma poziomów sponsorskich, linku do darowizn ani firmowego mecenasa — nie ma więc czego ujawniać i nie ma nikogo, czyje prośby o funkcje ważyłyby więcej niż innych. Domena i CI kosztują około 90 € rocznie, podzielone między opiekunów.

Kodeks postępowania

Contributor Covenant 2.1, egzekwowany przez opiekunów. Zgłoszenia trafiają na adres poniżej i dostają odpowiedź w ciągu trzech dni. Dwa incydenty w pięć lat, oba zakończone ostrzeżeniem.

Bezpieczeństwo

Zgłaszanie podatności

Nie otwieraj publicznego zgłoszenia

Napisz na security@example.invalid z opisem i, jeśli masz, reprodukcją. Odcisk klucza do szyfrowanych zgłoszeń jest opublikowany w SECURITY.md w repozytorium.

Co dzieje się dalej:

  • W ciągu 48 godzin — potwierdzenie, że człowiek przeczytał zgłoszenie.
  • W ciągu 7 dni — ocena: czy to podatność, których wersji dotyczy i orientacyjna data poprawki.
  • W ciągu 90 dni — poprawka wydana dla każdej wspieranej linii, opublikowany komunikat i podziękowanie dla zgłaszającego, chyba że woli inaczej.

W zakresie

Wszystko, co pozwala szablonowi lub jego danym wygenerować znaczniki albo JavaScript, których autor szablonu nie zamierzał: obejścia escapowania, błędy wykrywania kontekstu, zanieczyszczenie prototypu przez obiekt danych i odmowa usługi w parserze.

Poza zakresem

Potrójne nawiasy robiące dokładnie to, co mówią, oraz szablony napisane przez atakującego. Verso kompiluje szablony — szablon to kod, a jeśli niezaufane osoby mogą pisać twoje szablony, warstwa escapowania nie jest twoim problemem.

Historia

KomunikatDotyczyNaprawioneWaga
VERSO-2024-012.0.0 – 2.5.22.5.3Umiarkowana — obejście escapowania atrybutów bez cudzysłowów
VERSO-2022-011.0.0 – 1.4.11.4.2Niska — kwadratowy czas parsowania przy głęboko zagnieżdżonych blokach
Kontakt

Gdzie pisać

Błędy i prośby o funkcje należą do trackera zgłoszeń, gdzie da się je wyszukać. Wszystko inne:

  • security@example.invalid — podatności, zob. wyżej
  • conduct@example.invalid — zgłoszenia dotyczące kodeksu postępowania
  • maintainers@example.invalid — wszystko, co nie pasuje do dwóch pozostałych

Nie ma serwera czatu. Spróbowaliśmy w 2022 roku; na pytania odpowiadano raz, a potem znikały, co nie pomagało nikomu, kto szukał rok później.