Вносить изменения в токены можно с помощью pull request-ов в этот репозиторий на GitHub.
Чтобы ваши изменения попали в основную ветку (master) нужно, чтобы ваш pull request одобрил кто-то из мейнтейнеров репозитория:
Перед отправкой pull request-а на ревью убедитесь, что:
- в вашей ветке работает сборка (
npm run build:local
), - в вашей ветке проходят тесты (
npm test
), - в вашей ветке проходит линтер (
npm run lint
), некоторые ошибки можно автоматически поправить с помощьюnpm run lint:fix
, - покрытие тестов не ниже минимального значения,
- если вы вносите изменения в задокументированные части библиотеки, ваш pull request содержит обновления документации,
- если вы вносите изменения в сами токены, вы согласовали их с дизайнерами.
Для разработки в репозитории может понадобиться установить nodejs не ниже версии 16.
Если вы вносили изменения в цвета, необходимо обновить снапшоты тестов Jest:
npm test -- -u
(Необязательно) Для игнорирование коммитов в git blame
, связанные с
изменениями стиля кода, необходимо запустить следующую команду:
git config --local blame.ignoreRevsFile .git-blame-ignore-revs
В целом версионирование vkui-tokens придерживается semver.
Критерии формирования новой версии в зависимости от изменений перечислены ниже.
- локальное изменение цветов без изменения прозрачности
- локальное обратно совместимое изменение размеров
- изменение прозрачности цветов (например rgb -> rgba)
- локальное изменение размеров в рамках ограниченного числа тем (в release notes обязательно указать, какие токены изменились)
- добавление нового токена или новой темы
- обратно совместимые изменения инфраструктуры
- изменение размеров большого числа токенов
- удаление токена или темы
- другие обратно-несовместимые изменение
- src
- interfaces — описание интерфейса токенов
general
— описание общих типов и структур дизайн-системыnapespaces
— пространства имён тем оформления (vk, paradigm)themes
— описание интерфейса каждой темы оформления
- themeDescriptions — описание конкретных значений переменных тем оформления
- base — значения переменных базовых тем
- themes — значения переменных продуктовых тем
- common — вспомогательный код и общие для всех тем значения
- build — инструменты сборки
- lint — инструменты линтинга токенов
- interfaces — описание интерфейса токенов
- vkBase
- vkBaseDark
- vkCom
- vkIOS
- paradigmBase
- paradigmBaseDark
- calendar
- calendarDark
- calls
- cloud
- home
- homeDark
- media
- mediaDark
- mycom
- octavius
- octaviusCompact
- octaviusCompactDark
- octaviusDark
- octaviusVK
- octaviusVKDark
- octaviusWhite
- otvet
- otvetDark
- pharma
- promo
- pulse
- pulseDark