chore: add Cursor rule to bump ScriptVersion and version.txt on script changes

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-03 09:29:23 +10:00
parent 47f95ba186
commit 4b8ff95344
+18 -31
View File
@@ -1,44 +1,31 @@
--- ---
description: Bump версии в csproj и тег релиза vX.Y.Z при обновлениях description: При правке скриптов RDP-монитора обязательно поднимать version.txt и $ScriptVersion
alwaysApply: true 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 на сервере публикации)
При **любом** повышении `<Version>` в csproj в том же цикле работы: ## Чеклист перед push
1. Закоммитить bump (вместе с изменениями или коммитом `chore: bump version to X.Y.Z`). - [ ] `$ScriptVersion` и `version.txt` совпадают
2. Создать тег на **текущем** `HEAD` (после коммита с bump): - [ ] Версия на шаре будет **новее** локальной `deployed_version.txt` на клиентах
`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 из `<Version>`** (пример: `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`).