Skip to main content

Мне не хватало 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, и тому подобное.

А это вообще важно?

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

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

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

Metadata

Release files for cz-ru 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cz-ru 0.1.4
File Size Uploaded
cz_ru-0.1.4.tar.gz 5.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cz-ru 0.1.4
File Interpreter ABI Platform
cz_ru-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 12.5 kB

Release files / cz_ru-0.1.4.tar.gz

Download URL cz_ru-0.1.4.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
48d8bded1a3cbc7ddec3e21773532f5c5718798ca12542aeb86b79f9cc7074cf
BLAKE2b-256 checksum
How to use checksums
00719167058ac95f6f67381f91d201ca9c5fe2f9a62a9e0935aa21fe6a7ada70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.12.6 Linux/6.11.3-200.fsync.fc40.x86_64

Release files / cz_ru-0.1.4-py3-none-any.whl

Download URL cz_ru-0.1.4-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
27ce89647b46082c971c34ca548949bdb6fc69ee81e72814bd3b3f0140dcc5e7
BLAKE2b-256 checksum
How to use checksums
94af5e675822ac44b51942e0be1d9c48514298fabb45804c24722eac2508129c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.12.6 Linux/6.11.3-200.fsync.fc40.x86_64

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page