Для забезпечення стабільності та розвитку 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
| Версія | Статус | Release | Deletion |
|---|---|---|---|
| V7 | Stable | 7.9 | 9.5 |
| V8Preview1 | Not supported | 8.0 | 8.2 |
| V8Preview2 | Not supported | 8.1 | 8.3 |
| V8Preview3 | Not supported | 8.2 | 8.4 |
| V8Preview41 | Current | 8.3 | 8.6 |
| V8Preview5 | Current | 8.4 | 8.7 |
| V8Preview6 | Current | 8.5 | 8.8 |
| V8Preview7 | Develop | 8.6 | 8.9 |
| V8 | Develop | 8.7 | 10.3 |
| V9Preview1 | 8.8 | 9.1 | |
| V9Preview2 | 8.9 | 9.2 | |
| V9Preview3 | 9.0 | 9.3 | |
| V9Preview4 | 9.1 | 9.4 | |
| V9Preview5 | 9.2 | 9.5 | |
| V9Preview6 | 9.3 | 9.6 | |
| V9Preview7 | 9.4 | 9.7 | |
| V9 | 9.5 | ||
| V10Preview1 | 9.6 | 9.9 | |
| V10Preview2 | 9.7 | 10.0 | |
| V10Preview3 | 9.8 | 10.1 | |
| V10Preview4 | 9.9 | 10.2 | |
| V10Preview5 | 10.0 | 10.3 | |
| V10Preview6 | 10.1 | 10.4 | |
| V10Preview7 | 10.2 | 10.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.