Внесение изменений в проект

Основной процесс

В процессе внесения изменений в модуль принимает участие несколько человек:

  • Contributor - непосредственно вносит изменения.
  • Maintainer - отвечает за качество модуля - проводит ревью изменений, выпускает новую версию пакета.

Оформление коммитов

Contributor при оформлении коммитов должен учесть следующие требования:

  • Название коммита должно соответствовать conventional commits. Разрешенные префиксы: chore:, fix:, feat:, deps:, fixup!.
  • Коммит должен содержать законченную функциональность.

    Модуль должен сохранять рабочее состояние в рамках каждого коммита (не только в рамках всего пулл реквеста).
  • Коммит должен содержать единственную функциональность.

    Если пулл реквест модифицирует несколько функциональностей, они должны быть разбиты на отдельные коммиты.
  • При исправлении замечаний к пулл реквесту contributor создает дополнительный коммиты с префиксом fixup! и указание sha исправляемого коммита.

Оформление пулл реквеста

Contributor при оформлении пулл реквеста должен учесть следующие требования:

  • Название пулл реквеста должно отражать суть вносимых изменений.

    В случае если пулл реквест состоит из одного коммита - название пулл реквеста это имя коммита без conventional префикса.
  • В пулл реквесте присутствует дополнительное объяснение вносимых изменений.

    В случае исправления ошибки - ссылка на соответствующий issue или описание ошибки.

    В случае добавления функциональности - описание функциональности, ссылка на связанный коммит в документацию.

    В случае визуальных изменений скриншот или видео до/после.
  • После того, как maintainer принимает пулл реквест, в случае, если были созданы коммиты с префиксов fixup!, необходимо провести ручной rebase с флагом --autosquash, чтобы объединить исправления в оригинальные коммиты.
Предыдущая
Следующая