125 lines
5.0 KiB
Markdown
125 lines
5.0 KiB
Markdown
# Community release checklist
|
||
|
||
## 1. Назначение документа
|
||
|
||
Этот документ фиксирует канонический release path только для открытой редакции `Community`.
|
||
|
||
Он нужен, чтобы:
|
||
|
||
- не смешивать Community delivery с будущей коммерческой поставкой;
|
||
- дать reproducible checklist для public release;
|
||
- зафиксировать, какие артефакты считаются source of truth именно для открытой редакции.
|
||
|
||
## 2. Source of truth для Community release
|
||
|
||
Для открытой редакции каноническими считаются:
|
||
|
||
- `deploy/community/docker-compose.yml`
|
||
- `deploy/community/.env.example`
|
||
- `.github/workflows/ci.yml`
|
||
- `.github/workflows/deploy.yml`
|
||
- `docs/deployment.md`
|
||
- `docs/deploy-and-staging-smoke.md`
|
||
- `docs/authenticated-staging-pass.md`
|
||
|
||
Root-файлы:
|
||
|
||
- `docker-compose.yml`
|
||
- `.env.example`
|
||
|
||
считаются только convenience-слоем для локальной разработки и не должны использоваться как
|
||
основа будущей коммерческой упаковки.
|
||
|
||
## 3. Что обязательно входит в Community release
|
||
|
||
Community release должен поставлять:
|
||
|
||
- `ui`
|
||
- `admin-api`
|
||
- `mcp-server`
|
||
- `postgres` как runtime dependency в compose-манифесте
|
||
- optional `valkey` profile как рекомендованный, но не обязательный cache layer
|
||
- healthchecks
|
||
- базовый self-hosted deployment path
|
||
- capability-gated UI, который не притворяется коммерческой редакцией
|
||
|
||
## 4. Чего не должно быть в Community release
|
||
|
||
В Community release нельзя включать:
|
||
|
||
- private container images;
|
||
- private `Helm` charts;
|
||
- hosted control-plane services;
|
||
- enterprise-only auth/governance services;
|
||
- private token issuer implementations;
|
||
- manifests, которые пытаются быть общими одновременно для Community и коммерческой поставки.
|
||
|
||
## 5. Community release workflow
|
||
|
||
Перед выпуском нужно проверить:
|
||
|
||
1. `CI` зеленый.
|
||
2. Community deployment manifest валиден:
|
||
- `docker compose -f deploy/community/docker-compose.yml --env-file deploy/community/.env.example config -q`
|
||
- `docker compose -f deploy/community/docker-compose.yml --env-file deploy/community/.env.example --profile cache config -q`
|
||
3. Docker image build проходит для:
|
||
- `admin-api`
|
||
- `mcp-server`
|
||
- `ui`
|
||
4. Deploy workflow использует именно `deploy/community/docker-compose.yml`.
|
||
5. Post-deploy smoke выполнен по:
|
||
- `docs/deploy-and-staging-smoke.md`
|
||
- `docs/authenticated-staging-pass.md`
|
||
|
||
## 6. Правило для будущих коммерческих редакций
|
||
|
||
`Enterprise` и `Cloud` не должны проектироваться как:
|
||
|
||
- другой `.env` поверх `deploy/community/docker-compose.yml`;
|
||
- скрытые feature flags внутри Community release path;
|
||
- дополнительные сервисы, “подмешанные” в те же public manifests без отдельной delivery границы.
|
||
|
||
Они должны иметь:
|
||
|
||
- отдельный public repository `crank-community`;
|
||
- отдельные private repositories;
|
||
- отдельные manifests;
|
||
- отдельные release pipelines;
|
||
- отдельные operator docs.
|
||
|
||
До создания:
|
||
|
||
- `crank-community`
|
||
- `crank-enterprise`
|
||
- `crank-cloud`
|
||
|
||
нельзя считать physical packaging split завершенным.
|
||
|
||
Для технического baseline-export внутри private split rehearsal используется:
|
||
|
||
- `scripts/export-community.sh`
|
||
|
||
Этот helper не считается финальным public export path.
|
||
Финальный импорт в `crank-community` должен выполняться только после приведения кода к whitelist из `docs/community-source-whitelist.md`.
|
||
|
||
## 7. Минимальный operator checklist
|
||
|
||
Перед публикацией Community release нужно подтвердить:
|
||
|
||
- capability matrix совпадает с `docs/product-editions.md`;
|
||
- UI не показывает рабочими premium-only сценарии;
|
||
- `admin-api` и `mcp-server` enforce capability limits на сервере;
|
||
- public deployment path воспроизводим на чистом хосте;
|
||
- базовый запуск и запуск с profile `cache` оба валидны;
|
||
- staging smoke записан в regression notes.
|
||
|
||
## 8. Связанные документы
|
||
|
||
- `docs/product-editions.md`
|
||
- `docs/commercial-boundaries.md`
|
||
- `docs/repository-split-map.md`
|
||
- `docs/deployment.md`
|
||
- `docs/deploy-and-staging-smoke.md`
|
||
- `docs/authenticated-staging-pass.md`
|
||
- `docs/implementation-plan.md`
|