Przejdź do głównej zawartości
getnextpdf.com

Polityka wersjonowania, stabilności, deprecjacji i wsparcia

Każda strona dokumentacji NextPDF niesie pola cyklu życia w swoim front matter: stability, since, deprecated_since, replaced_by, version_lifecycle oraz eol_date. Te pola już kodują kontrakt wsparcia. Ta strona przedstawia ten kontrakt w jednym miejscu, aby zespół produkcyjny mógł odczytać metadane dowolnej strony i ocenić ryzyko przypięcia danej wersji.

NextPDF stosuje Semantic Versioning 2.0.0 dla numerów wydań oraz Conventional Commits 1.0.0 do generowania dziennika zmian. Interfejs dostawcy usług (publiczne kontrakty w NextPDF\Contracts oraz NextPDF\Event) podlega tym samym regułom; zobacz Reguły stabilności SPI dla mechaniki znacznika @stability per kontrakt. Ta strona to szersza polityka, którą reguły SPI uszczegóławiają.

Wersja wydania to MAJOR.MINOR.PATCH. Pozycja, która się zmienia, mówi Ci, co może się zmienić w Twoim kodzie:

InkrementacjaCo oznaczaCo może się zepsuć
Główna (3.x4.0.0)Zmiany łamiące są dozwolone.Kontrakt stable może zmienić sygnaturę lub zostać usunięty; symbol zdeprecjonowany oznaczony w poprzedniej wersji głównej może zostać skasowany; domyślne zachowanie może się zmienić.
Pomocnicza (6.06.1.0)Dodatki wstecznie zgodne.Nic dla kontraktu stable. Opublikowany stabilny interfejs nie zyskuje żadnych nowych wymaganych metod; wzrost pochodzi z nowych kontraktów/interfejsów, opcjonalnych metod na klasach konkretnych oraz nowych opcji konstruktora/konfiguracji z wartościami domyślnymi. Kontrakt experimental może się tu zmienić, najpierw z powiadomieniem o deprecjacji.
Poprawkowa (4.0.03.2.1)Wstecznie zgodne poprawki błędów.Nic zamierzonego. Zachowanie zbiega się ku udokumentowanemu kontraktowi.

Praktyczna reguła dla powierzchni stable: ograniczenie Composera takie jak ^3.2 otrzymuje każde wydanie pomocnicze i poprawkowe swojej linii głównej bez zmiany łamiącej. Zmiany łamiące lądują wyłącznie na granicy wersji głównej.

{
"require": {
"nextpdf/core": "^3.2"
}
}

Przypnij ciaśniej (na przykład ~3.2.0), gdy zależysz od kontraktu experimental, ponieważ kontrakt experimental może się zmienić w wydaniu pomocniczym.

Pole stability strony oraz źródłowy znacznik @stability kontraktu czerpią z tego samego słownictwa. Etykieta podaje siłę obietnicy zgodności.

EtykietaCo gwarantujeGdzie się zmienia
stableGotowy do produkcji. Bezpiecznie polegać. Brak zmiany łamiącej w wydaniu pomocniczym lub poprawkowym. Stabilny interfejs (taki jak SPI NextPDF\Contracts) nie zyskuje nowych wymaganych metod w wydaniu pomocniczym ani poprawkowym — wstecznie zgodny wzrost przybywa na nowym kontrakcie, jako opcjonalna metoda na klasie konkretnej albo przez opcje konstruktora/konfiguracji z wartościami domyślnymi.Tylko wydanie główne.
betaKompletny funkcjonalnie i użyteczny, ale powierzchnia jeszcze nie zamrożona. Traktuj go jak experimental przy przypinaniu: opakuj lub przypnij ciasno.Może się zmienić w wydaniu pomocniczym, najpierw z powiadomieniem o deprecjacji.
experimentalUżyteczny, ale jawnie niezamrożony. NextPDF może wydać przetestowaną implementację silnika, podczas gdy publiczny kontrakt wciąż się zmienia.Może się zmienić w wydaniu pomocniczym, najpierw z powiadomieniem o deprecjacji.
deprecatedZaplanowany do usunięcia. Strona lub kontrakt podaje swój zamiennik oraz wersję główną, w której zostaje usunięty.Usuwany w następnej wersji głównej; nigdy w pomocniczej ani poprawkowej.

Kontrakty strumieniowe NextPDF\Contracts\CursorInterface oraz NextPDF\Contracts\StreamingWriterInterface to rzeczywiste przykłady powierzchni experimental: NextPDF dostarcza ostateczne, przetestowane implementacje, ale publiczny kontrakt wciąż może się zmienić w wydaniu pomocniczym. Przypnij ciasno lub opakuj taki kontrakt za własnym adapterem, zanim oprzesz na nim produkcję.

Deprecjacja to zdefiniowana, czteroetapowa ścieżka. Zawsze nazywa zamiennik, a usunięcie zawsze jest odroczone do granicy wersji głównej:

  1. Oznacz. Właściciel ustawia @stability deprecated na kontrakcie (lub deprecated_since na stronie) i zapisuje zamiennik oraz wersję główną usunięcia. Na stronie deprecated_since to wersja, która wprowadziła deprecjację, a replaced_by to kanoniczna ścieżka następcy.
  2. Powiadom. Deprecjacja jest ogłaszana w dzienniku zmian dla wydania, które ją oznacza.
  3. Nakładanie. Zdeprecjonowana powierzchnia i jej zamiennik współistnieją przez co najmniej jedno wydanie pomocnicze, dzięki czemu możesz migrować bez dnia przełomu.
  4. Usuń. Powierzchnia jest usuwana w podanym wydaniu głównym. Usunięcie nigdy nie następuje w wydaniu pomocniczym ani poprawkowym.

Przykład na poziomie strony, który przeszedł cały łuk cyklu życia: starszy przepis /docs/cookbook/php/sign-pades/ został oznaczony deprecated_since: "3.0.0" wraz z replaced_by: /docs/cookbook/php/sign-pades-b-b/, współistniał ze swoim następcą przez okno nakładania, a od tamtej pory został wycofany — stary adres URL odpowiada teraz trwałym przekierowaniem do przepisu następcy, więc odnośniki napisane wobec strony deprecated nadal działają po jej usunięciu.

Zaplanuj migrację, gdy tylko powierzchnia zostanie oznaczona jako deprecated. Ponieważ zamiennik jest zawsze podany, a oba nakładają się przez co najmniej jedno wydanie pomocnicze, możesz przejść, zanim nadejdzie usuwająca wersja główna.

Pole version_lifecycle klasyfikuje sposób utrzymywania udokumentowanej linii wersji. Wartości to:

version_lifecycleZnaczenieOtrzymuje
activeBieżąca linia pod aktywnym rozwojem.Funkcje, poprawki oraz poprawki bezpieczeństwa.
ltsLinia z długoterminowym wsparciem.Poprawki oraz poprawki bezpieczeństwa przez okno wsparcia.
maintenancePo aktywnym rozwoju, wciąż utrzymywana.Poprawki bezpieczeństwa oraz poprawki poważnych błędów.
frozenBrak planowanych dalszych zmian funkcjonalnych.Tylko poprawki bezpieczeństwa, tam gdzie mają zastosowanie.
eolKoniec życia.Nic. Wymagana aktualizacja.

Gdy linia osiąga koniec życia, jej eol_date zapisuje datę (ISO 8601, YYYY-MM-DD). Strona z version_lifecycle: eol oraz przeszłą eol_date to sygnał do migracji z tej linii: nie otrzymuje już poprawek, w tym poprawek bezpieczeństwa.

To stwierdzenie polityki, a nie obietnica kalendarzowa. Pola mówią Ci o klasie wsparcia, w której znajduje się linia; po konkretną wersję, która niesie dany poprawek, sięgnij do dziennika zmian i informacji o wydaniu. Poprawki bezpieczeństwa są backportowane do linii, których cykl życia wciąż je obejmuje (active, lts oraz maintenance), a nie do linii oznaczonych frozen-bez-zastosowania ani eol.

NextPDF Core wymaga PHP >=8.4 <9.0. To okno jest zadeklarowane w composer.json silnika i jest jedynym źródłem prawdy; pakiety premium (nextpdf/pro, nextpdf/enterprise) wymagają tego samego zakresu.

  • Dolna granica (>=8.4) to minimalne środowisko uruchomieniowe. Jej podniesienie to zmiana łamiąca i ląduje wyłącznie na granicy wersji głównej.
  • Górna granica (<9.0) wyklucza następną wersję główną PHP, dopóki nie zostanie zwalidowana. Wsparcie dla nowej wersji głównej PHP jest dodawane w wydaniu NextPDF, a nie zakładane.

Strony dokumentacji niosą również listę compatibility wersji pomocniczych PHP, wobec których przepis jest zweryfikowany. Strona może wymieniać starsze wersje pomocnicze (na przykład ["8.1", "8.2", "8.3", "8.4"]), gdzie przepis jest przenośny, podczas gdy twardy próg instalacji silnika pozostaje >=8.4. W razie wątpliwości ograniczenie composer.json ma pierwszeństwo nad podpowiedzią compatibility strony.

Użyj tych sześciu pól do oceny dowolnej strony, zanim na niej zbudujesz:

PoleTypJak je czytać
stabilitystable | beta | experimental | deprecatedObietnica zgodności dla powierzchni, którą strona dokumentuje.
sinceSemVer (np. "3.1.0")Wersja, która wprowadziła udokumentowaną powierzchnię. Twoja instalacja musi być co najmniej w tej wersji.
deprecated_sinceSemVer lub pustaJeśli ustawione, powierzchnia jest zdeprecjonowana; wartość to wersja, która ją zdeprecjonowała. Pusta oznacza brak deprecjacji.
replaced_byŚcieżka witryny lub pustaGdy zdeprecjonowane, kanoniczna strona następcy, na którą należy migrować.
version_lifecycleactive | lts | maintenance | frozen | eolKlasa utrzymania udokumentowanej linii.
eol_dateData ISO lub pustaGdy version_lifecycle to eol, data końca życia. W przeciwnym razie pusta.

Przepracowany odczyt: strona z stability: stable, since: "3.0.0", deprecated_since: "" oraz version_lifecycle: active dokumentuje gotową do produkcji powierzchnię, która istnieje od 3.0.0, nie jest zdeprecjonowana i znajduje się na aktywnie utrzymywanej linii. Możesz na niej polegać pod ograniczeniem głównym ^. Strona z stability: deprecated oraz niepustym replaced_by to sygnał migracji: przeczytaj stronę następcy i zaplanuj przejście przed następną wersją główną.

Ta polityka jest zgodna z Semantic Versioning 2.0.0 dla numerowania wersji oraz z Conventional Commits 1.0.0 dla generowania dziennika zmian. Okno wsparcia PHP to ograniczenie >=8.4 <9.0 zadeklarowane w composer.json silnika. Ta strona nie zgłasza własnego normatywnego roszczenia co do standardów; dokumentuje kontrakt wsparcia, który pola cyklu życia front matter już kodują.

  • Reguły stabilności SPI — znacznik @stability per kontrakt oraz cztery klasy obietnicy wstecznej zgodności (interfejs, wyliczenie, zamrożony obiekt wartości, eksperymentalny).
  • Macierz wsparcia CSS — zweryfikowany pod kątem prawdziwości stan wsparcia per moduł dla potoku renderowania HTML i CSS.
  • Indeks dokumentacji referencyjnej — punkt wejścia do materiałów referencyjnych API, konfiguracji i zgodności.