SHA256
48 lines
3.2 KiB
Markdown
48 lines
3.2 KiB
Markdown
# Правила коммитов, 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`.
|