From 4b8ff953448a82e9c0cf1cc7343713561d39798a Mon Sep 17 00:00:00 2001 From: PTah Date: Wed, 3 Jun 2026 09:29:23 +1000 Subject: [PATCH] chore: add Cursor rule to bump ScriptVersion and version.txt on script changes Co-authored-by: Cursor --- .cursor/rules/version-bump.mdc | 49 +++++++++++++--------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/.cursor/rules/version-bump.mdc b/.cursor/rules/version-bump.mdc index 6b4041f..ead828e 100644 --- a/.cursor/rules/version-bump.mdc +++ b/.cursor/rules/version-bump.mdc @@ -1,44 +1,31 @@ --- -description: Bump версии в csproj и тег релиза vX.Y.Z при обновлениях -alwaysApply: true +description: При правке скриптов RDP-монитора обязательно поднимать version.txt и $ScriptVersion +globs: Login_Monitor.ps1,Deploy-LoginMonitor.ps1,Sac-Client.ps1,Exchange-MailSecurity.ps1,Watchdog_RDP_Monitor.ps1,version.txt +alwaysApply: false --- -# Версия сборки и теги релиза +# Bump версии RDP-login-monitor -Единственный источник — `VideoDownloader.App/VideoDownloader.App.csproj`. Синхронно обновляй: +Без новой версии **`Deploy-LoginMonitor.ps1` на ПК не подхватит обновление** (сравнение `version.txt` на шаре с `deployed_version.txt`). -- `Version` (например `0.7.0`) -- `AssemblyVersion` — `x.y.z.0` -- `FileVersion` — `x.y.z.0` -- `InformationalVersion` остаётся `$(Version)` +## Что менять в одном коммите с правкой -## Обычные правки (patch) +1. **`Login_Monitor.ps1`** — `$ScriptVersion` (например `2.0.7-SAC`) +2. **`version.txt`** — **та же строка**, одна строка без лишнего текста -После осмысленного изменения в `VideoDownloader.App` поднимай **patch** на **+0.0.1** (например `0.7.0` → `0.7.1`). Bump в **том же коммите**, что и изменение, где это уместно. +Строки должны **совпадать** (включая суффикс `-SAC`). -## Minor / major +## Как поднимать -При заметном релизе можно поднять **minor** или **major** по смыслу (например `0.6.x` → `0.7.0`). Не обязательно делать это при каждой мелкой правке. +- Обычная правка монитора / deploy / SAC-клиента → **patch**: `2.0.6-SAC` → `2.0.7-SAC` +- Крупный релиз → по смыслу **minor** (`2.0.x` → `2.1.0-SAC`) -## Тег версии при каждом bump (`vX.Y.Z`) — не забывать +## Другие скрипты с собственной версией -Ветки вида `v0.7.x` **не используем** — маркер релиза — **легковесный или аннотированный тег** с тем же именем. +- **`Exchange-MailSecurity.ps1`** — отдельный `$ScriptVersion`; bump только если меняли этот пакет +- После bump опубликовать на шару NETLOGON (`update-rdp-monitor.ps1` / pull на сервере публикации) -При **любом** повышении `` в csproj в том же цикле работы: +## Чеклист перед push -1. Закоммитить bump (вместе с изменениями или коммитом `chore: bump version to X.Y.Z`). -2. Создать тег на **текущем** `HEAD` (после коммита с bump): - `git tag -a vX.Y.Z -m "Release X.Y.Z"` (или `git tag vX.Y.Z` для легковесного тега). - Если тег с таким именем уже существовал локально по ошибке: удалить и создать заново на нужном коммите, либо `git tag -f` осознанно. -3. Запушить **обязательно**: **`git push origin native-code`** и **`git push origin vX.Y.Z`** (первый релиз с этим номером). - Повторный push того же тега на другой коммит на сервере обычно запрещён — bump версии делается новым номером и новым тегом. - -Именование тега: **`v` + полная semver из ``** (пример: `v0.7.2`), без префикса `release/`. - -**Не пушить** только `native-code` без нового **`v*`** — при bump версии всегда создавай и пушь соответствующий тег. - -### Проверка на GitHub - -Релиз по тегу: вкладка **Releases** или список тегов в репозитории; `git checkout v0.7.2` локально даёт ту же ревизию, что и при сборке с этим bump. - -Если на `origin` ещё есть старая **ветка** с тем же имени, что у тега, удаляй явно: `git push origin --delete refs/heads/vX.Y.Z` (иначе Git может не разрешить неоднозначность `vX.Y.Z`). +- [ ] `$ScriptVersion` и `version.txt` совпадают +- [ ] Версия на шаре будет **новее** локальной `deployed_version.txt` на клиентах