SemVer (Semantic Versioning, семантическое версионирование) — это общепринятый стандарт, который помогает понять масштаб изменений в плагине по его номеру версии. Формат: MAJOR.MINOR.PATCH (например, 2.3.1).
Для разработчика плагина это инструмент коммуникации: по номеру версии пользователи сразу видят, насколько рискованно обновляться.
Принципы SemVer
MAJOR (X.0.0) — серьёзные изменения, из‑за которых плагин может перестать работать с прежним кодом/настройками.
MINOR (X.Y.0) — новые функции, но без поломки старой совместимости.
PATCH (X.Y.Z) — исправления ошибок, оптимизация, рефакторинг — всё, что не меняет "внешнее (публичное) поведение" плагина.
Публичное поведение плагина - это то, с чем взаимодействует пользователь или другое ПО:
- доступные настройки в интерфейсе;
- методы и хуки, которые можно вызывать из кода;
- формат данных на входе/выходе;
- поведение при типовых сценариях использования.
Как применять на практике
| Тип изменения | Пример для плагина | Новая версия |
| Исправлен сбой при сохранении настроек | Устранена ошибка, из‑за которой плагин не сохранял конфигурацию | ✅ 2.0.7 (PATCH) |
| Добавлена новая функция без нарушения совместимости | Реализована поддержка экспорта в CSV | ✅ 2.1.0 (MINOR) |
| Изменён формат вывода данных, сломано взаимодействие с другими плагинами | Теперь плагин выдаёт данные в JSON, а не в XML | ✅ 3.0.0 (MAJOR) |
| Рефакторинг внутреннего кода без внешних изменений | Переписан модуль логирования, интерфейс и API не затронуты | ✅ 2.0.8 (PATCH) |
| Удален устаревший хук | Больше нельзя использовать apply_filter_old() | ✅ 3.0.0 (MAJOR) |
Зачем это нужно
Соблюдая SemVer, вы:
- помогаете пользователям оценить риски обновления;
- избегаете неожиданных поломок в их проектах;
- выстраиваете доверие к своему плагину.
Совет: всегда добавляйте к релизу краткий changelog — перечислите, что именно изменилось. Так пользователи быстрее примут решение об обновлении.