Zależy to wyłącznie od tego, jaki rodzaj gwarancji stabilności dałeś swoim użytkownikom i ile bólu chcesz sprawić swoim użytkownikom.
Idealnie, twój interfejs API używa semver , aby każda przełamująca zmiana spowodowała zwiększenie głównego numeru wersji. W praktyce pożądane jest, aby robić to prawie nigdy. Jeśli Twój interfejs API jest zainstalowany za pomocą menedżera pakietów, możesz chcieć utworzyć nową nazwę pakietu po przełomowej zmianie, aby prosta aktualizacja nie powodowała konfliktów (np. myapi2 v2.123.4
Vs myapi3 v3.2.1
). Może to być niepotrzebne, jeśli menedżer pakietów obsługuje ściślejsze zależności wersji (np. Taka specyfikacja zależności ~v2.120
nie obejmuje v3.*
), ale różne nazwy pakietów mają tę zaletę, że można bardzo łatwo używać obok siebie niekompatybilnych wersji. Nawet podczas korzystania z semver rozsądne może być zastosowanie okresu amortyzacji.
Semver nie zawsze ma zastosowanie. Dlatego ważniejsze jest przekazanie jasnej polityki stabilności. Na przykład:
- Funkcje eksperymentalne mogą zostać usunięte bez powiadomienia.
- Funkcje można usunąć w dowolnym momencie ze względów bezpieczeństwa.
- Inne funkcje zostaną usunięte
- … Po wycofaniu w wydanej wersji
- … Gdzie ta wersja ma co najmniej trzy miesiące
- … I będzie oznaczony guzem w głównej wersji.
Takie zasady działają szczególnie dobrze w przypadku regularnych wydań, dzięki czemu istnieje wyraźny okres amortyzacji, np. Jeden rok.
Oprócz oznaczania jakichkolwiek części interfejsu API jako przestarzałe, powinieneś uczynić je powszechnie znanym. Na przykład:
- W dzienniku zmian umieść sekcję o przyszłych kierunkach i rezygnacjach.
- Przekaż zamiar wycofania się przed dokonaniem wycofania i wysłuchaj społeczności, aby sprawdzić, czy istnieją poważne zastrzeżenia.
- Informuj, jakie korzyści przyniosą te zmiany. W zależności od bazy użytkowników biuletyny, prezentacje, posty na blogu lub komunikaty prasowe mogą być odpowiednimi mediami. Kręcąc „tworzymy niesamowitą nową funkcję! (który wymaga usunięcia tej powszechnie używanej starej funkcji) ”jest nieco mniej frustrujący niż usunięcie funkcji bez kontekstu.
Jeśli chodzi o dokładny okres amortyzacji do wyboru, najpierw sprawdź, czy musisz honorować umowy wsparcia z użytkownikami. Takie umowy mogą wymagać zachowania przez pewien czas zgodności. Jeśli nie, rozważ wpływ na dalszy proces. Staraj się zmieniać szybciej niż dalsi użytkownicy, aby mogli przejść przez własny cykl amortyzacji. Dalsi użytkownicy będą potrzebowali trochę czasu, aby dostosować się do twoich zmian, więc nigdy nie powinieneś mieć okresu amortyzacji krótszego niż miesiąc.