feat(release): install channels (stable/beta) + RELEASING/CHANGELOG
- install.sh installs a moving channel ref: git:...@stable by default, PI_KIT_CHANNEL=beta|vX.Y.Z to override; pi update follows the channel - cheat sheet shows channel + new commands (/kit-doctor, /kit-help) - RELEASING.md: channel/tag release + rollback process; CHANGELOG.md (Keep a Changelog) - supersedes earlier 'no ref = latest' for controlled rollout Verified: install.sh syntax + channel resolution (stable default, beta/tag override).
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# Релизы и каналы `@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
|
||||
```
|
||||
Reference in New Issue
Block a user