ИС "Такском-Доклайнз"                  ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
×
2.4. Использование семантического версионирования
 
Чем больше программных продуктов интегрируется в вашем проекте, тем сложнее вопрос об использовании новых версий программных продуктов.
Для облегчения учёта изменяющихся свойств программных продуктов номера новым версиям программных продуктов системы Такском-Доклайнз (API, SDK, Такском-Ассистент, Такском-Файлер,...) назначаются с использованием семантического версионирования, которое подразумевает следующее:
Любые изменения программного продукта должны сопровождаться выпуском соответствующей версии программного продукта. После выпуска версии программного продукта функциональность этой версии не должна изменяться.
Формат номера версии: {major}.{minor}.{patch}.{revision},
Major - номер версии функционала, не предусматривающего обратную совместимость (совместимость с предыдущей версией);
Minor - номер версии функционала, сохраняющего обратную совместимость;
Patch - номер изменения, связанного с исправлением ошибок, если не изменились номера major и minor - нового функционала нет, сохраняется обратная совместимость.
Revision - внутренний уникальный идентификатор сборки. Автоматически проставляется при каждой сборке программного продукта. Его следует игнорировать, когда определяется старшинство версий (обычно пользователям он не отображается).
Если меняется minor или patch версия, то совместимость со старыми версиями сохраняется.
Пример:
В запросе к серверу передаётся версия API  1.4.3, которая младше версии API 1.5.6 на сервере системы Такском-Доклайнз, и major версия API на сервере системы Такском-Доклайнз (1) равна major версии из заголовка запроса, в этом случае обеспечена обратная совместимость и корректная работа с API.
 
После выпуска новой major версии API, с учётом необходимости адаптации интегрированных систем, будет устанавливаться дата прекращения поддержки работы предыдущей версии. Всё развитие будет происходить на базе новой версии.
После прекращения поддержки работы предыдущей major версии система Такском-Доклайнз будет сообщать о невозможности дальнейшей работы с использованием устаревшего функционала.
Пример:
Если major версия API  на сервере системы Такском-Доклайнз отличается от версии API, переданной в заголовке API-Version, то в ответ сервер API вышлет ошибку: ClientApiVersionMismatch: Авторизация абонента невозможна. Версия API в заголовке запроса не соответствует серверной.
 
Для пользователей обычно предоставляется одна или две major версии API. C появлением новой major версии API старые версии поддерживаются только ограниченное время и в них не вносится новый функционал. Всё развитие происходит на базе новой версии.