В библиотеке Carbon Components Svelte используется семантическое
версионирование (SemVer), где номер версии имеет формат
MAJOR.MINOR.PATCH.
Breaking changes могут проявляться в нескольких формах:
Изменение публичного API компонентов
Изменение структуры DOM
Изменение логики работы компонентов
Чтобы минимизировать влияние breaking changes, библиотека предоставляет следующие механизмы:
Deprecation warnings В консоли выводятся предупреждения о устаревших пропсах или событиях, которые будут удалены в будущих MAJOR релизах. Пример:
<Button kind="primary" size="default" deprecatedProp="true" />
В консоли появится сообщение о том, что deprecatedProp
будет удалён в следующем MAJOR обновлении.
Пошаговое обновление Рекомендуется сначала обновлять PATCH и MINOR версии, фиксируя любые изменения в поведении компонентов. Затем переходить к MAJOR версии, учитывая breaking changes, описанные в release notes.
Release notes и миграционные гайды Каждая новая MAJOR версия сопровождается подробной документацией изменений, включая таблицы соответствий старых и новых API.
Переименование пропсов Например, в версии 2.x
пропс labelText в компоненте TextInput был
переименован в label. Старый вариант полностью удалён в
версии 3.x.
Изменение событий Компонент
Dropdown в версии 3.x изменил событие onSelect
на onChangeSelected, чтобы лучше соответствовать концепции
управления состоянием. Старая подписка на onSelect больше
не срабатывает.
Удаление устаревших компонентов Некоторые
компоненты, такие как InlineLoading, могут быть удалены или
заменены новой реализацией с другими API. Это требует рефакторинга
кода.
Изменение поведения слотов Слоты с именами
helperText или icon могут изменить свои
ожидания по структуре содержимого, что повлияет на визуальное
отображение и доступность.
Изоляция компонентов Для минимизации риска нарушения функциональности рекомендуется оборачивать компоненты в собственные адаптеры или обёртки, которые инкапсулируют работу с API библиотеки.
Тестирование интеграций Автоматические тесты, особенно визуальные и unit-тесты, позволяют выявлять изменения в поведении компонентов после обновления версии.
Пошаговая миграция Если проект большой, переход на новую MAJOR версию лучше проводить поэтапно, начиная с отдельных модулей, чтобы локализовать возможные ошибки.
Carbon Components Svelte строго ориентированы на совместимость с Svelte 3.x и выше. Breaking changes в самой библиотеке Svelte или в экосистеме CSS могут повлиять на работу компонентов, поэтому важно:
Такой подход обеспечивает предсказуемость и стабильность работы интерфейсов при регулярных обновлениях библиотеки Carbon Components Svelte.