Как семантическое управление версиями и обратная совместимость применяются к API плагина? - PullRequest
0 голосов
/ 20 февраля 2019

Я разрабатываю библиотеку на основе плагинов.Плагины реализуют узлы, которые могут быть подключены в виде специализированного графа фильтров , где сообщения передаются из источников в фильтры в приемники.

Если плагин исходного узла написан с использованием API библиотеки 1.1, который добавляет новые типы сообщений, которых не было в API 1.0, плагин узла-приемника, написанный с использованием API 1.0, не может знать эти типы сообщений.

В этом контексте, это добавление новых типов сообщений в API 1.1,семантическое изменение версионирования, которое фактически потребовало бы, чтобы API был версионирован 2.0?

Плагин узла-приемника 1.0 все еще строится против библиотеки 1.1, и он все еще может обрабатывать типы сообщений, которые существовали в API 1.0 (все, что1.0 плагин узла источника может произвести, например).У этого также есть способ обнаружить, что данное сообщение имеет неподдерживаемый тип, и это может изящно потерпеть неудачу, когда это происходит.Но, тем не менее, это не всегда работает, потому что неизвестные сообщения могут содержать важную информацию, которую нельзя игнорировать.

...