← На главную

Conventional Commits бесполезен: альтернатива — префиксы области

05.06.2026 15:39 · hackernews

Conventional Commits — неудачный стандарт, который ставит во главу угла не то, что нужно. Автор объясняет, почему он бесполезен и даже вреден.

Главная проблема — приоритет типа коммита (fix, feat, refactor) над его областью (scope). Именно область — самая важная часть: разработчику при просмотре лога нужно знать, какой модуль или компонент был изменён. Тип при этом не даёт полезной информации: баги могут появиться в любом коммите, а не только в fix. Стандарт делает область опциональной, что абсурдно — коммит без неё как предложение без подлежащего.

Тип к тому же избыточен. Описание коммита само говорит о характере изменений. Например, fix(compiler): prevent namespaced SVG <style> elements from being stripped — и так ясно, что это исправление. А в других случаях тип только мешает: рефакторинг по факту может быть и багфиксом, и новой функцией одновременно.

Обещания Conventional Commits тоже не работают. Автоматическая генерация changelog'ов — плохая идея. Лог коммитов нужен разработчикам, чтобы понимать историю изменений, а changelog — пользователям, чтобы знать о функциональных отличиях версий. Это разные вещи, и их смешение даёт плохой результат: несколько коммитов могут вести к одной фиче, а revert-коммиты только запутывают пользователя.

Автоматическое определение версии (semver) также ненадёжно. Revert коммита с breaking change всё равно сломает версию, хотя изменений нет. Случайная поломка может остаться незамеченной. А последующий коммит, который исправляет проблему, не откатит версию назад.

Идея триггерить сборку на основе типа тоже рискованна. Можно спрятать троян в коммит docs: fix typos — автоматика пропустит, и всё ляжет на код-ревью. Лучше полагаться на git diff и реально изменённые файлы.

Автор предлагает альтернативу — префиксы области (scope-prefixed commits), как в Linux, Git, Go или NixOS. Там коммит начинается с указания подсистемы, пакета или сервиса. Это естественно и полезно всем. Для продвижения идеи запущен сайт scopedcommits.com.

Читать оригинал →