Мне не хватало Conventional Commits с сообщениями на русском языке, поэтому я сделал вот это.
Сделано для Commitizen на Python.
Не путать с версией на JavaScript,
которая более популярна, но требует наличие package.json
. Подробнее о различиях
здесь.
Установить можно так:
pip install commitizen cz-ru
О том как пользоваться можно почитать здесь.
Структура идентична конфигу cz_conventional_commits.
Названия типов изменений вроде fix
и feat
решил оставить как есть.
Это не так важно, плюс не ломает генерацию списков изменений.
Единственное отклонение от оригинала, которое я себе позволил, и из-за которого вам этот конфиг может не подойти:
На английском всю жизнь была традиция писать в коммитах
глаголы повелительного наклонения настоящего времени, по типу update README.md
.
Официальная документация Git
объясняет это
тем, что вы как будто даёте приказы кодовой базе изменить своё поведение.
Мол, "кодовая база, обнови README.md
".
В русском языке более подходящий аналог этому - инфинитив: обновить README.md
.
Как по мне, для русского языка такой вариант звучит неестественно. Вместо отдачи приказов язык тянется описать, что произошло.
Есть вариант убрать глаголы вовсе и писать обновление README.md
.
Вариант на самом деле отличный, но я решил использовать другой вариант,
к которому я тяготею сильнее:
Неопределённо-личные предложения.
Как по мне, обновлён README.md
звучит натуральнее всего.
Либо я предвзят потому что все мои коллеги используют именно такой вариант. Но это уже не важно.
Именно что неопределённо-личные.
обновил README.md
уводит внимание с объекта изменений на автора,
а у авторов разного пола глагол будет лишний раз менять род
(обновил
или обновила
- должно быть не важно).
Поэтому стоит оставлять предложения обезличенными, чтобы писать что сделано с чем.
Раз мы обращаемся глаголами к вещам из кода, надо сообразить какой у них род.
У меня конвенция проста - использовать род того, чем вещь является: обновлён (файл) README.md
, переименована (переменная) counter
,
удалён (класс) Article
, исправлена (функция) runServer
, и тому подобное.
Важно - выбрать один стиль для всех и стабильно ему следовать. А какой именно - дело ваше.
Предоставленная здесь конвенция и форма глаголов - просто одна из кучи опций, которую так вышло что я полюбил и решил написать конфиг.
Если вы несогласны с ней, написать свой собственный конфиг очень легко. Подробнее про кастомизацию здесь. Обязательно опубликуйте его, больше выбора не повредит.