docs: rename target repository split

This commit is contained in:
a.tolmachev
2026-05-03 19:48:04 +00:00
parent 17d9c42521
commit 5327b0ef20
7 changed files with 23 additions and 19 deletions
+8 -7
View File
@@ -7,7 +7,7 @@
Status: in_progress Status: in_progress
Goal: Goal:
- закрепить техническую границу между public Community repo и private commercial delivery. - закрепить техническую границу между `crank-community`, `crank-enterprise` и `crank-cloud`.
Main code areas: Main code areas:
- `docs/commercial-boundaries.md` - `docs/commercial-boundaries.md`
@@ -19,18 +19,19 @@ Main code areas:
Implementation slices: Implementation slices:
1. Определить extension seams в public code. 1. Определить extension seams в public code.
2. Подготовить отдельные delivery manifests для Community. 2. Подготовить отдельные delivery manifests для Community.
3. Убрать из public repo assumptions о размещении private code рядом с Community logic. 3. Убрать из Community repo assumptions о размещении private code рядом с Community logic.
4. Подготовить naming и packaging strategy для private repositories. 4. Подготовить naming и packaging strategy для private repositories.
5. После завершения seams и capability split остановиться на управленческом gate и создать: 5. После завершения seams и capability split остановиться на управленческом gate и создать:
- public repository `crank-community`
- private repository `crank-enterprise` - private repository `crank-enterprise`
- private repository `crank-cloud` - private repository `crank-cloud`
Только после этого начинать физическое вынесение commercial code из public repo. Только после этого начинать физическое вынесение commercial code из текущего monorepo.
DoD: DoD:
- можно объяснить, что именно публикуется как OSS, а что уходит в private delivery; - можно объяснить, что именно публикуется как OSS, а что уходит в private delivery;
- Community release path отделен от commercial release path; - Community release path отделен от commercial release path;
- документация не ссылается на удаленные review files. - документация не ссылается на удаленные review files.
- момент создания `2` private repositories зафиксирован в плане как отдельный обязательный шаг, а не подразумевается неявно. - момент создания `3` целевых repositories зафиксирован в плане как отдельный обязательный шаг, а не подразумевается неявно.
Verification: Verification:
- docs consistency pass; - docs consistency pass;
@@ -38,12 +39,12 @@ Verification:
Progress: Progress:
- done: - done:
- gate for creating `2` private repositories is already documented before any physical commercial split - gate for creating `3` target repositories is already documented before any physical commercial split
- canonical Community deployment manifest and env template now live under `deploy/community/*`, and public deploy uses that manifest instead of the root compose file - canonical Community deployment manifest and env template now live under `deploy/community/*`, and public deploy uses that manifest instead of the root compose file
- CI, README, runtime/deploy smoke docs now point to `deploy/community/*` as the Community delivery source of truth - CI, README, runtime/deploy smoke docs now point to `deploy/community/*` as the Community delivery source of truth
- separate `Community` release checklist now exists and explicitly forbids treating future `Enterprise/Cloud` delivery as just another env on the same public manifest - separate `Community` release checklist now exists and explicitly forbids treating future `Enterprise/Cloud` delivery as just another env on the same public manifest
- pending: - pending:
- remaining extension seams and packaging split still need to move from planning into concrete public/private manifests - remaining extension seams and packaging split still need to move from planning into concrete `crank-community` / `crank-enterprise` / `crank-cloud` manifests
## Planned ## Planned
@@ -115,7 +116,7 @@ Implementation slices:
4. release checklist for edition-specific packaging. 4. release checklist for edition-specific packaging.
DoD: DoD:
- Community публикуется из public repo; - Community публикуется из `crank-community`;
- Enterprise и Cloud используют private delivery path; - Enterprise и Cloud используют private delivery path;
- коммерческий код не требуется публиковать в open source ради поставки. - коммерческий код не требуется публиковать в open source ради поставки.
+1 -1
View File
@@ -235,7 +235,7 @@ Crank развивается как open-core продукт.
Коммерческий контур не должен защищаться "скрытием" уже опубликованного исходного кода. Правильная архитектурная граница выглядит так: Коммерческий контур не должен защищаться "скрытием" уже опубликованного исходного кода. Правильная архитектурная граница выглядит так:
- в public repo остается Community runtime и extension seams; - в `crank-community` остается Community runtime и extension seams;
- коммерческие реализации поставляются из private repositories или private artifacts; - коммерческие реализации поставляются из private repositories или private artifacts;
- критичные правила лицензирования, metering и token issuance исполняются на серверной стороне. - критичные правила лицензирования, metering и token issuance исполняются на серверной стороне.
+4 -4
View File
@@ -67,15 +67,15 @@
Рекомендуемая схема: Рекомендуемая схема:
- `crank` — public Community repo; - `crank-community` — public Community repo;
- `crank-enterprise` — private self-hosted extensions; - `crank-enterprise` — private self-hosted extensions;
- `crank-cloud` — private cloud control plane и hosted-only logic. - `crank-cloud` — private cloud control plane и hosted-only logic.
Важно: Важно:
- создание `crank-enterprise` и `crank-cloud` должно быть отдельным осознанным шагом; - создание `crank-community`, `crank-enterprise` и `crank-cloud` должно быть отдельным осознанным шагом;
- до этого момента в public repo нужно завершить capability model, extension seams и public contracts; - до этого момента в текущем репозитории нужно завершить capability model, extension seams и public contracts;
- физическое вынесение private code нельзя начинать раньше, чем эти два private repositories созданы и для них определены delivery boundaries. - физическое вынесение private code нельзя начинать раньше, чем эти три целевых repositories созданы и для них определены delivery boundaries.
## 6. Техническая стратегия разделения ## 6. Техническая стратегия разделения
+2
View File
@@ -79,6 +79,7 @@ Community release должен поставлять:
Они должны иметь: Они должны иметь:
- отдельный public repository `crank-community`;
- отдельные private repositories; - отдельные private repositories;
- отдельные manifests; - отдельные manifests;
- отдельные release pipelines; - отдельные release pipelines;
@@ -86,6 +87,7 @@ Community release должен поставлять:
До создания: До создания:
- `crank-community`
- `crank-enterprise` - `crank-enterprise`
- `crank-cloud` - `crank-cloud`
+1 -1
View File
@@ -178,7 +178,7 @@
Для проекта фиксируется дополнительное правило: Для проекта фиксируется дополнительное правило:
- код `Community` живет в public repository; - код `Community` в целевой split-модели живет в `crank-community`;
- коммерческий код не должен попадать в public repository "на будущее"; - коммерческий код не должен попадать в public repository "на будущее";
- в public code допустимы только extension seams, capability flags и контракты для private implementations; - в public code допустимы только extension seams, capability flags и контракты для private implementations;
- edition gating должно проверяться на серверной стороне, а не только в UI. - edition gating должно проверяться на серверной стороне, а не только в UI.
+5 -4
View File
@@ -138,17 +138,18 @@
### Действие ### Действие
На этом этапе нужно создать `2` новых private repositories: На этом этапе нужно создать `3` целевых repositories:
- `crank-community`
- `crank-enterprise` - `crank-enterprise`
- `crank-cloud` - `crank-cloud`
### Результат ### Результат
- `crank` остается public Community repository; - `crank-community` становится public Community repository;
- `crank-enterprise` становится private self-hosted commercial repository; - `crank-enterprise` становится private self-hosted commercial repository;
- `crank-cloud` становится private hosted/control-plane repository; - `crank-cloud` становится private hosted/control-plane repository;
- только после этого начинается физическое вынесение коммерческого кода из public repo. - только после этого начинается физическое вынесение Community и коммерческого кода из текущего репозитория по новым delivery boundaries.
## 11. Этап 8. Cloud control plane ## 11. Этап 8. Cloud control plane
@@ -172,7 +173,7 @@
### DoD ### DoD
- Community публикуется из public GitHub repository; - Community публикуется из `crank-community`;
- Enterprise поставляется через private container registry и private manifests; - Enterprise поставляется через private container registry и private manifests;
- Cloud использует отдельный private operational contour; - Cloud использует отдельный private operational contour;
- build provenance и подпись артефактов документированы; - build provenance и подпись артефактов документированы;
+2 -2
View File
@@ -162,7 +162,7 @@
## 5. Разделение open-source и commercial модулей ## 5. Разделение open-source и commercial модулей
### 5.1. Что остается в public repository ### 5.1. Что остается в `crank-community`
В этом репозитории должны жить: В этом репозитории должны жить:
@@ -174,7 +174,7 @@
### 5.2. Что должно выноситься в private delivery ### 5.2. Что должно выноситься в private delivery
За пределами public repo должны жить: За пределами `crank-community` должны жить:
- short-lived и one-time token issuers; - short-lived и one-time token issuers;
- enterprise access services; - enterprise access services;