Skip to content

Latest commit

 

History

History
79 lines (60 loc) · 3.94 KB

CONTRIBUTING.md

File metadata and controls

79 lines (60 loc) · 3.94 KB

GIT

Модель ветвления GIT описана здесь.

Авторелизы

Для проекта подключены авторелизы npm пакетов с помощью semantic-release. Semantic-release определяет новую версию пакета по названию коммита, а именно по его enum:

  • feat - релиз minor версии пакетов
  • bug - релиз patch версии пакетов
  • wip (work in progress) - релиз произведен не будет
  • refactor - релиз patch версии пакетов
  • doc - релиз произведен не будет
  • build - релиз patch версии пакетов
  • chore - релиз произведен не будет

Релизы основных версий пакетов

При внесении изменений в main ветку запускается релиз пакетов. При релизе происходит следующее:

  1. В create_release.yml срабатывает триггер на push в main
  2. Semantic-release определяет новую версию пакета
  3. Если новая версия пакета отличается от предыдущей, то запускается билд каждого пакета и его паблишинг в npm. Все пакеты релизяться сразу с одной версией
  4. Semantic-release генерирует changelog и создает новый release на github, добавляя в описание сгенерированный changelog
  5. После успешного паблишинга пакетов, в телеграм канал отправляется уведомление о новой версии пакетов

Формат коммитов и pull requests

Для коммитов и pull requests включен commitlint. Ниже описан формат.

Для enums feat, bug обязательно должен указываться номер задачи в jira.

Формат:

${ENUM}(SCOPE|COMPONENT_NAME|TASK): Что было сделано?

ENUM:

  • feat - добавлена новая фича. Для этого enum будет произведен релиз minor версии пакетов
  • bug - исправлена ошибка. Для этого enum будет произведен релиз patch версии пакетов
  • wip (work in progress) - промежуточные изменения
  • refactor - произведен рефакторинг. Для этого enum будет произведен релиз patch версии пакетов
  • doc - внесены изменения в .md файлы или storybook. Для этого enum релиз произведен не будет
  • build - внесены изменения в сборке пакетов. Для этого enum будет произведен релиз patch версии пакетов
  • chore - внесены изменения в настройку окружения проекта (линтеры, ci...). Для этого enum релиз произведен не будет
  • test - написаны или изменены тесты проекта

SCOPE разделены по пакетам:

  • ui
  • icons
  • fonts
  • form

COMPONENT_NAME - имя измененного компонента (наименование директорий из ui/src).

Примеры

Для feat необходимо указать номер задачи

Valid
feat(UIKIT-200,ui,Button): Добавлен props color
Invalid
feat(ui,Button): Добавлен props color

Пробел между scopes недопустим

Valid
feat(UIKIT-200,ui,Button): Добавлен props color
Invalid
feat(UI-KIT-200, ui, Button): Добавлен props color