# Релизы и каналы `@mvideo/pi-kit` Пакет исполняет код на машинах всех разработчиков, поэтому раскатка контролируется **каналами** и **semver-тегами**, а не «всегда latest». ## Каналы - **`stable`** — ветка, на которую сотрудники установлены по умолчанию (`git:git.codelab.vc/ai/pi-kit@stable`). Указывает на проверенный релиз. - **`beta`** — ветка для обкатки перед `stable` (по желанию). Установка: `PI_KIT_CHANNEL=beta`. - Можно закрепиться на конкретный тег: `PI_KIT_CHANNEL=v1.2.3`. `pi update --extensions` тянет текущее состояние канала, на который установлен пользователь. ## Как выпустить релиз 1. Собрать изменения в `main` через MR с ревью (правило репозитория). 2. Прогнать проверки: `npm test` (guardrails), `npm run typecheck` (при наличии peer-типов), `pi install ./` + `/kit-doctor`. 3. Обновить версию в `package.json` и запись в `CHANGELOG.md` (раздел из `Unreleased`). 4. Поставить тег на нужный коммит `main`: ```bash git tag -a vX.Y.Z -m "vX.Y.Z" git push origin vX.Y.Z ``` 5. Перевести канал на этот тег (fast-forward ветки канала): ```bash git branch -f beta vX.Y.Z # сначала на beta для обкатки git push origin beta # после обкатки: git branch -f stable vX.Y.Z git push origin stable ``` 6. Сотрудники получат обновление обычным `pi update --extensions`. ## Semver - **patch** (`vX.Y.Z+1`) — фиксы guardrails/скилов/шаблонов без изменения поведения команд. - **minor** — новые скилы/команды/расширения, обратно совместимо. - **major** — несовместимые изменения (удаление команд, смена формата `config/company.json`). ## Откат Перевести `stable` на предыдущий тег и запушить: ```bash git branch -f stable vX.Y.(Z-1) && git push origin stable ```