Wydania

Zmiany

Verso ściśle trzyma się wersjonowania semantycznego. Wydanie minor nigdy nie zmienia wyniku renderowania istniejącego szablonu; gdy raz musieliśmy, czekaliśmy na wydanie major i ogłosiliśmy je pół roku wcześniej.

3.2.1
14 lutego 2026
Bieżące

Naprawione

  • renderToStream() mogło wysłać skrypt scalający przed odroczonym blokiem, gdy dwa bloki zakończyły się w tym samym ticku. Zgłosił @hal-moravec z minimalną reprodukcją, dzięki czemu poprawka miała dwie linie.
  • Filtr date zwracał Invalid Date zamiast pustego łańcucha dla null w trybie nieścisłym.
  • Mapy źródeł wskazywały o jedną linię za wysoko w szablonach, których pierwsza linia była komentarzem.

Zmienione

  • Błędy kompilacji pokazują teraz dwie linie kontekstu zamiast jednej. Bez zmian w API.
3.2.0
9 stycznia 2026

Dodane

  • Strumieniowe partiale. {{#defer}} może teraz występować wewnątrz dołączonego partiala, a nie tylko na najwyższym poziomie szablonu wejściowego. To była najczęściej zgłaszana prośba w 2025 roku i wymagała trzech podejść.
  • RenderOptions.onError — zastępuje błędny blok tekstem zastępczym zamiast niszczyć strumień.
  • verso explain --tree wypisuje drzewo węzłów.

Naprawione

  • Rozwiązywanie partiali konsekwentnie podąża za dowiązaniami symbolicznymi na Linuksie i macOS.
  • Filtr unique zachowywał ostatnie wystąpienie zamiast pierwszego.
3.1.0
22 września 2025

Dodane

  • Operator in w warunkach: {{#if role in allowedRoles}}.
  • --sourcemap dla verso build.
  • Wersja przeglądarkowa opublikowana jako verso/browser, 7,4 kB po gzip.

Wydajność

  • Składanie stałych wartości statycznych atrybutów. Szablony złożone głównie ze znaczników kompilują się o 30–40% mniejsze.
  • Escapowanie wykonuje teraz jeden przebieg po znakach; render tabeli z 2 000 wierszy spadł z 3,1 do 1,9 ms.
3.0.0
6 maja 2025
Niekompatybilne
Zmiany niekompatybilne

Jedyne niekompatybilne wydanie w historii projektu. Ogłoszone w listopadzie 2024 i wydane pół roku później, z codemodem w @verso/migrate.

Zmienione

  • Puste tablice są teraz fałszywe. {{#if items}} nie wchodzi już w gałąź prawdy dla []. To było największe pojedyncze źródło zgłoszeń błędów w 2.x.
  • Escapowanie uwzględnia kontekst. Wartości w atrybutach href, src i style są escapowane dla tych kontekstów. Szablony, które ręcznie escapowały podwójnie, pokażą teraz dosłowne encje — codemod je znajduje.
  • compile() jest synchroniczne; forma asynchroniczna przeszła do compileFile().
  • Minimum to Node.js 18. Node 16 osiągnął koniec wsparcia we wrześniu 2023.

Usunięte

  • {{#with}}, wycofane od 2.6. Używaj {{> partial with value}}.
  • Niejawne wyszukiwanie verso.config.js. Przekazuj --config jawnie.
2.9.4
11 marca 2026
Utrzymanie

Naprawione

  • Backport poprawki strumieniowania z 3.2.1.

Linia 2.x dostaje poprawki bezpieczeństwa i poprawności do 30 czerwca 2027. Nowe funkcje nie będą przenoszone wstecz.

2.6.0
18 października 2024
Zastąpione

Dodane

  • Układy: {{#extends}}, {{#slot}} i {{#fill}}.
  • Polecenie verso check.

Wycofane

  • {{#with}} — usunięte w 3.0.
1.0.0
3 czerwca 2021
Historyczne

Pierwsze publiczne wydanie. Wydzielone z potoku generowania statycznej strony, w którym przez około osiem miesięcy było jednym plikiem na 300 linii. Interpolacja, #if, #each, partiale i sześć filtrów.

Zasady

Jak wersjonujemy

Wydania patch naprawiają błędy i nigdy nie zmieniają wyniku szablonu, który był już poprawny. Wydania minor dodają składnię lub API; istniejące szablony renderują się identycznie. Wydania major mogą zmienić wynik renderowania — zrobiliśmy to raz.

Każda linia wydań dostaje poprawki bezpieczeństwa przez co najmniej osiemnaście miesięcy po wyjściu kolejnego wydania major. Daty publikujemy tutaj w chwili ogłoszenia major, a nie dopiero, gdy wsparcie się kończy.

Wycofania ostrzegają podczas kompilacji przez pełny cykl minor przed usunięciem, a ostrzeżenie podaje zamiennik i wersję, w której funkcja zniknie.

Zgłoś problem bezpieczeństwa →