From 60cb20406f8cad5bf8872089c86dc001dc4be5da Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 8 Feb 2026 16:42:43 +0300 Subject: [PATCH] =?UTF-8?q?docs(docs):=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D0=B0?= =?UTF-8?q?=20=D0=BE=D1=84=D0=BE=D1=80=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - унифицировать стиль коммитов для всех участников проекта - Что сделано: - добавлен документ docs/COMMIT_RULES.md с форматом и примерами - добавлена ссылка на правила в AGENTS.md - Проверка: - проверен staged diff перед коммитом --- AGENTS.md | 2 ++ docs/COMMIT_RULES.md | 78 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 docs/COMMIT_RULES.md diff --git a/AGENTS.md b/AGENTS.md index 20becea..f479d88 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -84,6 +84,7 @@ - Держать изменения минимальными и по теме задания (инфра, схема, ingest, витрины). - Не коммитить секреты. Если требуется пароль/ключи — использовать `.env` и примеры `.env.example`. +- Оформлять коммиты по правилам из [COMMIT_RULES.md](./docs/COMMIT_RULES.md). - README/планы обновлять вместе с изменениями инфраструктуры/DDL. - Для спорных или меняющихся API (особенно Airflow/operators/providers) проверять актуальную документацию через `context7` и фиксировать решение в коде/документации. - **Комментарии в коде — на русском языке**: @@ -103,6 +104,7 @@ - [README.md](./README.md) — пользовательская документация (быстрый старт, архитектура) - [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) — подробное описание слоёв и технических решений - [data/DE-task.md](./data/DE-task.md) — исходное задание +- [COMMIT_RULES.md](./docs/COMMIT_RULES.md) — правила оформления коммитов ## Примечания по текущему состоянию (если что-то “не встаёт”) diff --git a/docs/COMMIT_RULES.md b/docs/COMMIT_RULES.md new file mode 100644 index 0000000..269cb1d --- /dev/null +++ b/docs/COMMIT_RULES.md @@ -0,0 +1,78 @@ +# Правила оформления коммитов + +Документ задаёт единый стиль коммитов для всех участников проекта. + +## Язык + +- Язык коммитов: русский. +- Технические термины (`Airflow`, `ClickHouse`, `Kafka`, `MV`, `DDL`) допускаются на английском. + +## Формат заголовка + +- Формат: `(): <краткое действие>` +- Максимальная длина заголовка: 72 символа. +- Заголовок пишется в повелительном стиле, без точки в конце. + +### Разрешённые `type` + +- `feat` — новая функциональность +- `fix` — исправление ошибки +- `refactor` — изменение структуры без смены поведения +- `docs` — документация +- `test` — тесты/проверки +- `chore` — сервисные изменения (конфиги, скрипты, хуки) +- `ci` — CI/CD +- `perf` — оптимизация производительности +- `revert` — откат коммита + +### Рекомендуемые `scope` для этого репозитория + +- `airflow` +- `stg` +- `ods` +- `dds` +- `dm` +- `kafka` +- `superset` +- `monitoring` +- `scripts` +- `docs` +- `infra` + +## Структура тела коммита + +Если изменение не тривиальное, тело коммита обязательно. Для удобства чтения используйте буллеты. + +Рекомендуемый шаблон: + +```text +(): <краткое действие> + +- Зачем: + - причина изменения +- Что сделано: + - ключевое изменение 1 + - ключевое изменение 2 +- Проверка: + - как проверено (команда/тест/смоук-чек) +``` + +## Размер и границы коммита + +- Один коммит = одна логическая задача. +- Не смешивать в одном коммите функциональные изменения и крупный рефакторинг без необходимости. +- Документацию обновлять в том же коммите, где меняется поведение пайплайна или инфраструктуры. + +## Ломающие изменения + +- Для ломающих изменений используйте `!` в заголовке: + - `feat(ods)!: изменить контракт таблицы browser_event` +- Добавляйте footer: + - `BREAKING CHANGE: ...` + +## Примеры + +- `feat(ods): перенести STG->ODS в batch шаг Airflow` +- `fix(airflow): ждать данные в STG перед load_ods` +- `docs(architecture): обновить схему потока после миграции ODS` +- `chore(scripts): синхронизировать make transform с новым ETL`