intermediate
Conventional Commits
Используйте структурированные сообщения коммитов для changelog, автоматизации версий и поиска по истории.
Conventional Commits задают формат `type(scope): description` с опциональным breaking footer `BREAKING CHANGE:`. Инструменты парсят историю для версий и changelog.
| Type | Типичный сигнал semver | |------|------------------------| | `feat` | minor | | `fix` | patch | | `feat!` или breaking footer | major |
feat(auth): add OAuth callback route
fix(ui): prevent double submit on checkout
feat(api)!: remove legacy /v1 users endpoint
BREAKING CHANGE: /v1/users removed; migrate to /v2/users
При squash-merge финальное сообщение squash должно сохранять type и breaking markers для release tooling.
На интервью: польза автоматизации, конвенции scope, когда церемония мешает маленькой команде и связка с Changesets.
Типовые ошибки: размытый `chore` скрывает влияние на пользователя; squash теряет структуру; формат коммита вместо хорошего review.
Компромисс — машиночитаемая история против трения для авторов.
Чеклист:
- Осмысленные type и scope.
- Явные breaking changes.
- Squash-сообщения согласованы с automation.
- Коммиты честно отражают user impact.