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:
@@ -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 на сервере публикации)
|
||||
|
||||
При **любом** повышении `<Version>` в 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 из `<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`).
|
||||
- [ ] `$ScriptVersion` и `version.txt` совпадают
|
||||
- [ ] Версия на шаре будет **новее** локальной `deployed_version.txt` на клиентах
|
||||
|
||||
Reference in New Issue
Block a user