50 lines
3.4 KiB
Plaintext
50 lines
3.4 KiB
Plaintext
---
|
||
description: "Conventional Commits, semver релизов MikrotikManager и русские git commit message (Generate Commit Message)"
|
||
alwaysApply: true
|
||
---
|
||
|
||
# Версионирование релизов
|
||
|
||
## Generate Commit Message (критично)
|
||
|
||
Для **Generate Commit Message** в Cursor, предложения subject в чате, `git commit` и любой автогенерации сообщения коммита:
|
||
|
||
- Формат: `тип(scope): описание на русском` — префикс Conventional Commits и scope **на английском**, текст после `:` **только на русском**.
|
||
- Body и footer (если нужны) — **только на русском**.
|
||
- В описании после `:` не использовать английские слова: `add`, `update`, `implement`, `rename` и т.п.
|
||
- **`feat` не по умолчанию.** Сначала проверь `fix` / `chore` / `ci` / `docs`; `feat` — только новая пользовательская возможность.
|
||
- Примеры: `fix(ui): выровнять модалку релиза`; `chore(rules): усилить правила commit message`; `feat(releases): добавить страницу релизов`.
|
||
- Детальный чеклист типов — **`commit-messages-ru.mdc`**.
|
||
|
||
- Версию **не** править вручную в UI, `package.json` и git-тегах; bump делает CI через [`.ci/scripts/compute-release.mjs`](.ci/scripts/compute-release.mjs).
|
||
- Базовая линия: `v1.0.0`. Формат отображения: `v1.2.3`.
|
||
- **Язык коммитов:** subject и body — **только на русском**; префикс Conventional Commits (`feat`, `fix`, `chore` и т.д.) и scope — на английском.
|
||
|
||
## Patch (`1.0.x`)
|
||
|
||
`fix:`, `chore:`, `docs:`, `refactor:`, `style:`, `test:`, `build:`, `ci:`
|
||
|
||
- Один логический смысл на коммит; subject в повелительном наклонении, до ~72 символов, **на русском**.
|
||
- Scope по желанию: `fix(servers):`, `chore(ci):`.
|
||
|
||
## Minor (`1.x.0`)
|
||
|
||
`feat:` — новая пользовательская возможность.
|
||
|
||
## Major (`2.0.0` после `1.x`)
|
||
|
||
`тип!:`, `тип(scope)!:` или footer `BREAKING CHANGE:` / `BREAKING-CHANGE:` повышают major, обнуляя minor и patch. При смешанной истории major имеет приоритет над minor и patch. Версия, тег, manifest и Docker tags вычисляются CI; package.json вручную не меняется. Для согласованного перехода на вторую основную версию используется `chore(release)!:` с русским описанием.
|
||
|
||
## Примеры
|
||
|
||
- `fix(servers): исправить опрос API после таймаута` — patch
|
||
- `feat(filters): добавить синхронизацию BGP in` — minor
|
||
- `chore(ci): добавить job prepare-release` — хорошо
|
||
- `feat: add release modal` — плохо (subject не на русском)
|
||
|
||
## Антипаттерны
|
||
|
||
WIP, «update», subject на английском, смешение несвязанных изменений, маскировка фич под `fix`/`chore`, ручной bump в sidebar.
|
||
|
||
Подробности — раздел CI/CD в `README.md`.
|