From 9a7019a2ce2f166c7678d6f07150bf5e201e6e32b0ac8b92614e83cc2f6368a2 Mon Sep 17 00:00:00 2001 From: AidarKC Date: Wed, 22 Jul 2026 20:10:20 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F:=20=D0=B2=D1=8B=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B8=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D0=B0?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=D0=BE=D0=B2=20=D0=B8=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 9 ++----- COMMIT_AND_VERSION_RULES.md | 47 +++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 COMMIT_AND_VERSION_RULES.md diff --git a/AGENTS.md b/AGENTS.md index c1629e40..286a1818 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -79,12 +79,8 @@ - Для экранов регистрации, входа и других чувствительных UI-flow по умолчанию переносить экраны в Figma по одному, а не пачкой, если пользователь отдельно не подтвердил иной способ. ## Версионирование -- Единый файл версий проекта: `VERSION.properties` (в корне репозитория). -- Перед каждым новым коммитом обязательно увеличивать версии в `VERSION.properties`: -- `client.version` — версия клиентского UI. -- `server.version` — версия серверной части. -- Базовое правило инкремента: `+1` по последнему числовому сегменту (patch), если не оговорено иное. -- Обычные коммиты делать стандартным `git commit`; переменная `$GITEA_TOKEN` для коммитов не нужна и не используется. +- Все правила по коммитам, merge в `main`, `git push` и обновлению `VERSION.properties` находятся в `COMMIT_AND_VERSION_RULES.md`. +- Этот файл считать единым источником истины по правилам версионирования и коммитов для данного репозитория. ## Deploy - Все документы, инструкции, backup-правила и скрипты деплоя хранить в папке `deploy/`. @@ -93,7 +89,6 @@ - Тестовые/devnet серверы SHiNE: `t1.shineup.me`, `t2.shineup.me`, `t3.shineup.me`, `t4.shineup.me`. - В deploy-документах и скриптах использовать домены, а не IP. - По возможности все справки, комментарии и примечания в конфигах/документах писать на русском языке. -- Для операций `git push` при необходимости использовать токен из переменной окружения `$GITEA_TOKEN`. - Любые изменения и любой деплой на production (`shineup.me` и `server2.shineup.me`) выполнять только после отдельного явного подтверждения пользователя. - Перед production deploy обязательно проверить/обновить бэкап в `deploy/backup/archive/`. - Если пользователь пишет просто `задеплой` без уточнения production/test, уточнить целевой контур; не выбирать production автоматически. diff --git a/COMMIT_AND_VERSION_RULES.md b/COMMIT_AND_VERSION_RULES.md new file mode 100644 index 00000000..31026e08 --- /dev/null +++ b/COMMIT_AND_VERSION_RULES.md @@ -0,0 +1,47 @@ +# Правила коммитов, merge и версионирования + +Этот файл является единым источником правил для: +- коммитов; +- merge в `main`; +- изменения версий в `VERSION.properties`; +- `git push` из этого репозитория. + +## Язык + +- Пояснения к коммитам, PR и merge-запросам писать на русском языке. + +## Где хранится версия + +- Единый файл версий проекта: `VERSION.properties` в корне репозитория. +- Основные поля: +- `client.version` — версия клиентского UI. +- `server.version` — версия серверной части. + +## Базовое правило для обычных коммитов + +- Перед каждым новым коммитом обязательно обновлять версии в `VERSION.properties`. +- Если менялся только UI, увеличивать только `client.version`. +- Если менялся только сервер, увеличивать только `server.version`. +- Если менялись и UI, и сервер, увеличивать обе версии. +- Для обычных коммитов вне `main` использовать стандартный patch-инкремент: `+1` к последнему числовому сегменту. +- Пример: `1.2.346` → `1.2.347`. + +## Правило для `main` + +- Ветка `main` предназначена только для стабильных версий. +- По умолчанию в `main` нужно не коммитить напрямую, а мержить готовые изменения из рабочей ветки. +- Если пользователь просит сделать прямой коммит в `main`, нужно отдельно и явно предупредить, что это обход обычного стабильного процесса, и обязательно переспросить подтверждение. + +## Версионирование при merge или прямом коммите в `main` + +- Для попадания изменений в `main` действует отдельная схема инкремента. +- Нужно увеличивать вторую цифру версии и обнулять третью. +- Пример: `1.2.346` → `1.3.0`. +- Если в наборе изменений менялся только UI, обновлять только `client.version`. +- Если в наборе изменений менялся только сервер, обновлять только `server.version`. +- Если соответствующая часть не менялась, её версию не трогать. + +## Правила для git commit и git push + +- Обычные коммиты делать стандартным `git commit`; токен для локального коммита не нужен и не используется. +- Для операций `git push` при необходимости использовать токен из переменной окружения `$GITEA_TOKEN`.