CDS использует семантическое версионирование SemVer.
Три типа версий:
- Major (X.y.z) - Основная версия содержит критические изменения
- Minor (x.Y.x) - Незначительная версия добавляет новые функции или отказывается от существующих функций без критических изменений
- Patch (x.y.Z) - Патч-фикс исправляет ошибки или оптимизирует текущий функционал без критических изменений
Major
CDS использует major версию для критических изменений. Примеры таких изменений:
Vue.js
- Изменение названия компонента
CdsInputLabel => CdsLabel
- Переименование свойств, публичных методов, пользовательских событий или слотов
- Свойства (props):
props: { label }
=>props: { text }
- Методы (methods):
methods: { select() }
=>methods: { selectHandler() }
- События (events):
$emit('select')
=>$emit('change')
- Свойства (props):
- Удаление свойств, публичных методов, пользовательских событий или слотов
- Изменение количества или порядка аргументов публичных методов
- Изменение типов входящих параметров в пользовательских событиях
- Добавление новых обязательных валидаторов для свойств
Стили
- Изменение стилей, которые вызывают изменение макета продукта используюшего CDS, например
- Изменение в свойствах блочной модели
padding
,margin
,width
,height
,display
,box-sizing
,position
,left/right/top/bottom
- Изменение свойств шрифтов
font-size
,font-weight
,letter-spacing
- Изменение в свойствах блочной модели
Разметка
- Изменения разметки, которое требует, чтобы пользователи CDS обновляли разметку продукта с критическими изменениями стилей, например
- Изменение структуры
<div>Lorem</div> => <div><div>Lorem</div></div>
- Изменение тэгов
h1
=>h2
,span
=>p
- Изменение структуры
- Удаление HTML атрибутов или свойств (например
aria
), которые задействовали преобразование текста в речь, навигацию с помощью клавиатуры, и другие a11y функции
Токены
- Изменение постоянного значения цветов текста или фона (может вызвать критические изменение цветового контраста в продукте пользователя использующего CDS)
- Удаление общего используемого миксина, токена или переменой (css-vars)
Иконки
- Удаление иконок из CDS
- Изменение названия иконок
- Изменение размеров иконок
- Значительное изменение пиктограммы иконки при сохрании ее имени
- Например иконка с именем
alert
меняется с на
- Например иконка с именем
Шрифты
- Изменение на другое семейство шрифтов, которое может привести к критическому изменению размера текста и переносу
Minor
CDS использует minor версию для некритических изменений, которые добавляют новый функционал
Vue.js
- Добавление новых компонентов
- Добавление новых вариаций в существующие компоненты
- Добавление новых свойст, публичных методов, пользовательских событий или слотов
- Добавление новых необязательных аргументов в существующие публичные методы
- Добавление новых пользовательских событий
- Свойство, публичный метод или пользовательское событие помечено как устаревшее (deprecated) и заменено новым функционалом
Стили
- Добавление новых миксинов, токенов, переменных (css-vars)
- Изменения свойств блочной модели, которые влияют на внутреннюю компоновку внутри компонента
Разметка
- Добавление новых HTML атрибутов или свойств (например
aria-
,title
,data-
) - Изменение HTML свойств, например таких как
aria-
,title
,data-
- Добавление дополнительной разметки внутри компонента не меняющей визуальное отображение и не вызывающей критические изменения
- Например
<button>Text</button>
=><button><span>Text</span></button>
- Например
Иконки
- Добавление новых иконок
- Незначительное изменение пиктограммы иконки
Patch
Vue.js
- Исправление дефектов в свойствах, методах, пользователских событиях или слотах, которые мешают компоненту функционировать (не связаны с визуальным аспектом компонента)
- Исправление опечаток или орфографических ошибок в сообщениях об ошибках, валидациях или содержимом по умолчанию в компонентах
- Исправление дефектов в шаблоне разметки компонента