Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 4.59 KB

File metadata and controls

66 lines (44 loc) · 4.59 KB

Contributing

Процесс внесения изменений в репозиторий

Commit step

Мы используем Conventional Commits (https://www.conventionalcommits.org/). Git commit message должен быть на английском языке. Изменения в коммите должны затрагивать только один пакет. Версионирование пакетов происходит автоматически, руками версию в package.json не поднимаем.

Пример коммита в пакет @sberdevices/plasma-ui:

git commit -m "feat(plasma-ui): Component X added"

Пример 2:

git commit -m "fix(plasma-web): Fix component Y"

Использование Conventional Commits обязательно:

  • fix - если вносится исправление в существующую функциональность. Приведет к выпуску патча пакета по semver;
  • feat - если в кодовую базу добавляется новая функциональность. Приведет к выпуску минорной версии пакета;
  • docs - если вносится изменение в контент документации, например в файлах с расширениями *.md и *.mdx;
  • chore - если вносимые изменения не относятся ни к кодовой базе пакетов, ни к документации;
  • build - сборка пакетов и утилит;
  • ci - для всех коммитов в папке .github

Node, npm versions

Для корректной работы, необходимо использовать node версии v12.x, а также npm версии 6.x. Или же воспользоваться командой nvm use в корне репозитория.

Разработка с помощью Lerna

Для внесения правок в нескольких пакетах одновременно, необходимо выполнение команды npx lerna bootstrap или npx lerna bootstrap --scope [имя пакета 1] --scope [имя пакета 2]. Первый способ установит зависимости и слинкует все пакеты, а второй - только указанные.

Pull request

  • Создаем PR в ветку master, дожидаемся успешного завершения работы ci. Если последний commit-message содержит [skip ci] - ci запущен не будет.
  • По завершению должны выпуститься canary-версии затронутых пакетов.
  • Дожидаемся аппрува от всех ревьюеров ПРа.
  • Мержим ПР.

После успешного завешения работы ci для каждого затронутого пакета будет:

  • Поднята версия
  • Собран CHANGELOG.md (+ общий для всего монорепозитория)
  • Выпущена новая версия в npm-registry
  • Получен положительный результат после проведения тестов
  • Собрана документация и Storybook по адресу (https://plasma.sberdevices.ru/)

Тесты

Запуск тестов со скриншотами

Для запуска тестов со скриншотами с помощью Cypress может понадобиться Docker.

На примере пакета @sberdevices/plasma-ui прогон тестов выглядит следующим образом:

  • необходимо установить все пакеты в монорепозитории, для этого в корне монорепозитория выполните команды npm ci, а потом npx lerna bootstrap;
  • запустите прогон тестов, в корне монорепозитория выполните команду npm run cy:ui:run-ct (для остальных пакетов команды будут соответствующими);
  • обновите скриншоты, если это необходимо, для этого выполните npm run cy:ui:run-ct-update-diffs;
  • для отладки тестов, используйте команду npm run cy:ui:open-ct