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 старые версии поддерживаются только ограниченное время и в них не вносится новый функционал. Всё развитие происходит на базе новой версии.