Files
SHiNE-server/COMMIT_AND_VERSION_RULES.md

3.2 KiB

Правила коммитов, 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.3461.2.347.

Правило для main

  • Ветка main предназначена только для стабильных версий.
  • По умолчанию в main нужно не коммитить напрямую, а мержить готовые изменения из рабочей ветки.
  • Если пользователь просит сделать прямой коммит в main, нужно отдельно и явно предупредить, что это обход обычного стабильного процесса, и обязательно переспросить подтверждение.

Версионирование при merge или прямом коммите в main

  • Для попадания изменений в main действует отдельная схема инкремента.
  • Нужно увеличивать вторую цифру версии и обнулять третью.
  • Пример: 1.2.3461.3.0.
  • Если в наборе изменений менялся только UI, обновлять только client.version.
  • Если в наборе изменений менялся только сервер, обновлять только server.version.
  • Если соответствующая часть не менялась, её версию не трогать.

Правила для git commit и git push

  • Обычные коммиты делать стандартным git commit; токен для локального коммита не нужен и не используется.
  • Для операций git push при необходимости использовать токен из переменной окружения $GITEA_TOKEN.