Контроль версій API

Для забезпечення стабільності та розвитку API підтримуються кілька версій. Це дозволяє впроваджувати нові можливості без порушення роботи існуючих плагінів. Кожна версія проходить свій життєвий цикл: після «замороження» інтерфейсу розробка продовжується у новій версії, а старі залишаються працездатними, доки підтримуються.

Життєвий цикл версій

  • LTS (Long-Term Support) — стабільні версії, виходять приблизно раз на 2 роки, підтримуються близько 4 років.
  • Preview — проміжні версії між LTS, виходять раз на 3 місяці, підтримуються пів року.

Одночасно підтримуються дві останні LTS-версії та до двох Preview-версій.
LTS мають послідовну нумерацію (V1, V2, V3…), а Preview — з префіксом (V8Preview1, V8Preview2…), після яких виходить відповідна стабільна LTS-версія.

Release Schedule

Статуси версій API

—— Develop LTS version — версія LTS у розробці

—— Stable LTS version — стабільна LTS-версія, рекомендована для використання

—— Outdated LTS version — застаріла LTS-версія, підтримка припинена

—— Current Preview version — поточна тестова (preview) версія

—— Outdated Preview version — попередня тестова версія, більше не підтримується

Оновлення LTS-версій

Після виходу нової LTS-версії відбувається така зміна статусів:

  • Застаріла версія — більше не підтримується.
  • Стабільна версія — переходить у статус застарілої.
  • Версія в розробці — «заморожується» й стає новою стабільною.
  • З’являється нова версія в розробці.

Оновлення Preview-версій

Механізм простіший:

  • застаріла preview-версія більше не підтримується;
  • поточна стає застарілою;
  • створюється нова preview-версія на базі поточної LTS у розробці.

Вибір версії

  • Рекомендовано: використовувати стабільну LTS-версію — вона гарантує сумісність і мінімальні зусилля при оновленні.
  • Якщо потрібні нові функції, які ще не увійшли в LTS, можна використовувати актуальну Preview-версію (оновлюватися кожні 3–6 місяців до виходу нової LTS).
  • Застарілі версії варто використовувати лише для зворотної сумісності на перехідний період.
  • Розроблювана (develop) версія не рекомендована для продакшену — її інтерфейс може змінюватися. Вона потрібна лише для ознайомлення з майбутніми функціями.

Ідентифікація версії

Версію API, для якої створено плагін, визначають за версією інтерфейсу IFrontPlugin.
Наприклад, якщо плагін використовує Resto.Front.Api.V6.dll і реалізує IFrontPlugin із цього збірника, це плагін версії V6.

Починаючи з V6, простори імен не містять номера версії, тому для одночасного використання кількох API необхідно застосовувати extern alias, щоб уникнути конфліктів типів між різними версіями.

Статуси версій API та відповідність версіям Syrve

ВерсіяСтатусReleaseDeletion
V7Stable7.99.5
V8Preview1Not supported8.08.2
V8Preview2Not supported8.18.3
V8Preview3Not supported8.28.4
V8Preview41Current8.38.6
V8Preview5Current8.48.7
V8Preview6Current8.58.8
V8Preview7Develop8.68.9
V8Develop8.710.3
V9Preview1 8.89.1
V9Preview2 8.99.2
V9Preview3 9.09.3
V9Preview4 9.19.4
V9Preview5 9.29.5
V9Preview6 9.39.6
V9Preview7 9.49.7
V9 9.5 
V10Preview1 9.69.9
V10Preview2 9.710.0
V10Preview3 9.810.1
V10Preview4 9.910.2
V10Preview5 10.010.3
V10Preview6 10.110.4
V10Preview7 10.210.5
V10 10.3 

1 Починаючи з V8Preview4, тривалість підтримки Preview-версій збільшено — тепер вона охоплює ще одну версію Syrve Instance.

Починаючи з версії Syrve Instance 8.5, цикл підтримки попередніх версій збільшується: версія V8Preview4, яка вийшла в 8.3, буде видалена лише в 8.6, тобто підтримуватиметься в 8.3, 8.4, 8.5.

Зворотна сумісність

Зворотна сумісність гарантує, що плагін, розроблений для певної версії API, працюватиме з усіма версіями Syrve Office, які підтримують цю версію API.


Програмна сумісність

Програмна сумісність означає, що публічний інтерфейс (структури даних, методи тощо) не може змінюватися після релізу.

  • Якщо видалити або змінити публічний клас чи метод — плагін перестане компілюватися або працювати (виникнуть помилки типу TypeLoadException, MissingMethodException).
  • Додавання нових методів або класів дозволяється лише у Preview-версіях, щоб розробники могли тестувати нові можливості до виходу LTS.

Політика:

  • У LTS-версіях зміни публічного інтерфейсу заборонені.
  • У Preview-версіях допускаються зміни, сумісні із попередніми версіями.

Зміни поведінки

Зміни у поведінці вже випущених API не допускаються.
Виняток можливий лише у випадках, коли виправлення критичних вразливостей необхідне для запобігання пошкодженню даних або збоїв у Syrve POS. Такі виправлення не вважаються зміною поведінки, адже не впливають на коректно працюючі плагіни.


Термін підтримки

Період підтримки API — це час, протягом якого виходять оновлення Syrve Office із підтримкою відповідної версії API.

  • У Syrve RMS немає календарних обмежень на використання версій API.
  • Плагіни залишаються працездатними, якщо користувач не оновлює систему.
  • Однак для відповідності законодавству, отримання нових функцій або виправлення помилок оновлення системи необхідні — тож розробникам слід завчасно адаптувати плагіни до нових API.