Версионирование

Версионирование и критические изменения дизайн-системы

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')
  • Удаление свойств, публичных методов, пользовательских событий или слотов
  • Изменение количества или порядка аргументов публичных методов
  • Изменение типов входящих параметров в пользовательских событиях
  • Добавление новых обязательных валидаторов для свойств

Стили

  • Изменение стилей, которые вызывают изменение макета продукта используюшего 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

  • Исправление дефектов в свойствах, методах, пользователских событиях или слотах, которые мешают компоненту функционировать (не связаны с визуальным аспектом компонента)
  • Исправление опечаток или орфографических ошибок в сообщениях об ошибках, валидациях или содержимом по умолчанию в компонентах
  • Исправление дефектов в шаблоне разметки компонента
Новое мажорное обновление!
Мы активно разрабатываем дизайн систему CDS 3.0 на Vue 3