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

Статья создана
Обновлена 30 марта 2026 г.

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

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

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

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

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

  • Название коммита должно соответствовать conventional commits. Разрешенные префиксы: chore:, fix:, feat:, deps:, fixup!.
  • Коммит должен содержать законченную функциональность. Модуль должен сохранять рабочее состояние в рамках каждого коммита (не только в рамках всего пулл реквеста).
  • Коммит должен содержать единственную функциональность. Если пулл реквест модифицирует несколько функциональностей, они должны быть разбиты на отдельные коммиты.
  • При исправлении замечаний к пулл реквесту contributor создает дополнительный коммиты с префиксом fixup! и указание sha исправляемого коммита.

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

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

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