Dies hängt ausschließlich davon ab, welche Stabilitätsgarantien Sie Ihren Benutzern gegeben haben und wie viel Schmerz Sie Ihren Benutzern zufügen möchten.
Idealerweise verwendet Ihre API Semver, sodass bei jeder Änderung die Hauptversionsnummer erhöht wird. In der Praxis ist es wünschenswert, dies so gut wie nie zu tun. Wenn Ihre API über einen Paketmanager installiert wird, möchten Sie möglicherweise nach einer Änderung einen neuen Paketnamen erstellen, damit bei einem einfachen Upgrade keine Konflikte auftreten (z . B. myapi2 v2.123.4
vs myapi3 v3.2.1
). Dies ist möglicherweise nicht erforderlich, wenn Ihr Paketmanager engere Versionsabhängigkeiten unterstützt (z. B. eine solche Abhängigkeitsspezifikation ~v2.120
enthält keine v3.*
). Unterschiedliche Paketnamen haben jedoch den Vorteil, dass inkompatible Versionen sehr einfach nebeneinander verwendet werden können. Auch bei der Verwendung von Semver kann es sinnvoll sein, einen Verfallszeitraum festzulegen.
Semver ist nicht immer anwendbar. Dann ist es wichtiger, eine klare Stabilitätspolitik zu kommunizieren. Beispielsweise:
- Experimentelle Funktionen können ohne vorherige Ankündigung entfernt werden.
- Funktionen können aus Sicherheitsgründen jederzeit entfernt werden.
- Andere Funktionen werden nur entfernt
- … Nachdem sie in einer veröffentlichten Version veraltet waren
- … Wo diese Version mindestens drei Monate alt ist
- … Und werden in der Hauptversion durch eine Unebenheit gekennzeichnet.
Solche Richtlinien funktionieren besonders gut, wenn Sie regelmäßige Veröffentlichungen haben, sodass ein eindeutiger Verfallszeitraum vorliegt, z. B. ein Jahr.
Abgesehen davon, dass Sie Teile der API als veraltet markieren, sollten Sie die Veraltetheit weithin bekannt machen. Beispielsweise:
- Verfügen Sie in Ihrem Änderungsprotokoll über zukünftige Anweisungen und Ablehnungen.
- Übertragen Sie Ihre Absicht, zu missbilligen, bevor Sie die Missbilligung durchführen, und lauschen Sie der Community, um festzustellen, ob wesentliche Einwände bestehen.
- Teilen Sie mit, welchen Nutzen diese Änderungen haben werden. Je nach Benutzerbasis sind Newsletter, Präsentationen, Blogposts oder Pressemitteilungen geeignete Medien. Eine Runde drehen “Wir entwickeln eine großartige neue Funktion! (was erfordert, dass dieses weit verbreitete alte Feature entfernt wird) “ist ein bisschen weniger frustrierend als das Entfernen eines Features ohne Kontext.
Prüfen Sie zunächst, ob Sie den genauen Verfallszeitraum festlegen müssen, für den Sie Support-Verträge mit Ihren Benutzern abschließen müssen. Solche Verträge erfordern möglicherweise, dass Sie die Kompatibilität für einen bestimmten Zeitraum aufrechterhalten. Wenn nicht, ziehen Sie nachgeschaltete Auswirkungen in Betracht. Versuchen Sie, weniger schnell als nachgeschaltete Benutzer zu wechseln, damit sie einen eigenen Verfallszyklus durchlaufen können. Nachgeschaltete Benutzer werden einige Zeit benötigen, um sich an Ihre Änderungen anzupassen. Sie sollten daher niemals einen kürzeren Verfallszeitraum als einen Monat festlegen.