Skip to content

Latest commit

 

History

History
108 lines (85 loc) · 4.81 KB

CONTRIBUTING.md

File metadata and controls

108 lines (85 loc) · 4.81 KB

Внесение изменений в vkui-tokens

Вносить изменения в токены можно с помощью 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 — инструменты линтинга токенов

Структура наследования тем

  • 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