Мне не хватало Conventional Commits с сообщениями на русском языке,
поэтому я сделал вот это.

Сделано для [Commitizen на Python](https://github.com/commitizen-tools/commitizen).
Не путать с [версией на JavaScript](https://github.com/commitizen/cz-cli),
которая более популярна, но требует наличие `package.json`. Подробнее о различиях
[здесь](https://commitizen-tools.github.io/commitizen/faq/#is-this-project-affiliated-with-the-commitizen-js-project).

Установить можно так:
```bash
pip install commitizen cz-ru
```

О том как пользоваться можно почитать
[здесь](https://commitizen-tools.github.io/commitizen/).

Структура идентична [конфигу cz_conventional_commits](https://github.com/commitizen-tools/commitizen/blob/master/commitizen/cz/conventional_commits/conventional_commits.py).
Названия типов изменений вроде `fix` и `feat` решил оставить как есть.
Это не так важно, плюс не ломает генерацию списков изменений.

Единственное отклонения от оригинала, которое я себе позволил,
и из-за которого вам этот конфиг может не подойти:

### Использование неопределённо-личной формы вместо повелительной

На английском всю жизнь была традиция писать в коммитах
глаголы повелительного наклонения настоящего времени, по типу `update README.md`.
Официальная документация Git 
[объясняет это](https://git-scm.com/docs/SubmittingPatches#imperative-mood)
тем, что вы как будто даёте приказы кодовой базе изменить своё поведение.
Мол, "кодовая база, `обнови README.md`".
В русском языке более подходящий аналог этому - инфинитив: `обновить README.md`.

Как по мне, для русского языка такой вариант звучит неестественно.
Вместо отдачи приказов язык тянется описать, что произошло.

Есть вариант **убрать глаголы вовсе** и писать `обновление README.md`.
Вариант на самом деле отличный, но я решил использовать другой вариант,
к которому я тяготею сильнее:

**Неопределённо-личные предложения.**
Как по мне, `обновлён README.md` звучит натуральнее всего.
Либо я предвзят потому что все мои коллеги используют именно такой вариант. Но это уже не важно.

Именно что **неопределённо**-личные.
`обновил README.md` уводит внимание с субъекта изменений на автора,
а у авторов разного пола глагол будет лишний раз менять род
(`обновил` или `обновила` - должно быть не важно).
Поэтому стоит оставлять предложения обезличенными, чтобы писать **что сделано с чем**.

Раз мы обращаемся глаголами к вещам из кода, надо сообразить какой у них род.
У меня конвенция проста - использовать род того, чем вещь является: `обновлён (файл) README.md`, `переименована (переменная) counter`,
`удалён (класс) Article`, `исправлена (функция) runServer`, и тому подобное.

### А это вообще важно?
Важно - **выбрать один стиль** для всех и стабильно ему следовать.
А какой именно - дело ваше.

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

Если вы несогласны с ней, написать свой собственный конфиг очень легко. 
Подробнее про кастомизацию [здесь](https://commitizen-tools.github.io/commitizen/customization/). Обязательно опубликуйте его, больше выбора не повредит.