--- description: Bump версии в csproj и тег релиза vX.Y.Z при обновлениях alwaysApply: true --- # Версия сборки и теги релиза Единственный источник — `VideoDownloader.App/VideoDownloader.App.csproj`. Синхронно обновляй: - `Version` (например `0.7.0`) - `AssemblyVersion` — `x.y.z.0` - `FileVersion` — `x.y.z.0` - `InformationalVersion` остаётся `$(Version)` ## Обычные правки (patch) После осмысленного изменения в `VideoDownloader.App` поднимай **patch** на **+0.0.1** (например `0.7.0` → `0.7.1`). Bump в **том же коммите**, что и изменение, где это уместно. ## Minor / major При заметном релизе можно поднять **minor** или **major** по смыслу (например `0.6.x` → `0.7.0`). Не обязательно делать это при каждой мелкой правке. ## Тег версии при каждом bump (`vX.Y.Z`) — не забывать Ветки вида `v0.7.x` **не используем** — маркер релиза — **легковесный или аннотированный тег** с тем же именем. При **любом** повышении `` в csproj в том же цикле работы: 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`).