docs: align community repo as source of truth
This commit is contained in:
@@ -16,17 +16,17 @@
|
||||
|
||||
## 2. Текущее состояние
|
||||
|
||||
Сейчас код и документация еще живут в одном репозитории.
|
||||
Разделение уже выполнено на уровне репозиториев:
|
||||
|
||||
Это допустимо только как переходное состояние, пока:
|
||||
- `crank-community` — public base;
|
||||
- `crank-enterprise` — private self-hosted delta;
|
||||
- `crank-cloud` — private hosted delta.
|
||||
|
||||
- не зафиксированы capability boundaries;
|
||||
- не подготовлены extension seams;
|
||||
- не собраны отдельные Community delivery artifacts;
|
||||
- не определен physical split plan.
|
||||
Дальнейшая задача не в создании split, а в его дисциплинированном поддержании:
|
||||
|
||||
После завершения этого этапа текущий репозиторий не должен оставаться source of truth сразу для
|
||||
всех трех редакций.
|
||||
- общее улучшение идет сначала в `crank-community`;
|
||||
- затем переносится в `crank-enterprise` и `crank-cloud`;
|
||||
- cleanup Community делается только в `crank-community`.
|
||||
|
||||
## 3. Целевой результат
|
||||
|
||||
@@ -193,42 +193,20 @@ Private repository.
|
||||
4. Public contracts должны остаться в Community и не зависеть от private кодовой базы.
|
||||
5. Private repos не должны требовать обратного копирования логики в Community.
|
||||
|
||||
## 6. Что должно произойти перед физическим split
|
||||
## 6. Правила поддержки split после разделения
|
||||
|
||||
Перед началом physical split нужно выполнить отдельно:
|
||||
После разделения действуют такие правила:
|
||||
|
||||
1. Создать репозитории:
|
||||
- `crank-community`
|
||||
- `crank-enterprise`
|
||||
- `crank-cloud`
|
||||
2. Определить owners и access policy для private repositories.
|
||||
3. Зафиксировать отдельные package/release names.
|
||||
4. Подготовить начальные README и baseline workflows для всех трех репозиториев.
|
||||
|
||||
Текущий статус:
|
||||
|
||||
- `crank-community` уже создан;
|
||||
- `crank-enterprise` уже создан;
|
||||
- `crank-cloud` уже создан;
|
||||
- bootstrap templates уже перенесены в целевые repositories;
|
||||
- baseline-import в `crank-community` уже был откачен из истории и не считается финальным public source state;
|
||||
- management gate закрыт, следующий шаг — начать physical split.
|
||||
|
||||
Пока эти четыре пункта не выполнены, physical split не начинается.
|
||||
|
||||
Техническая заготовка для этого шага уже живет в:
|
||||
|
||||
- `templates/repositories/crank-community/*`
|
||||
- `templates/repositories/crank-enterprise/*`
|
||||
- `templates/repositories/crank-cloud/*`
|
||||
1. `crank-community` остается базой для общей открытой логики.
|
||||
2. `crank-enterprise` и `crank-cloud` не должны независимо переизобретать общий Community код.
|
||||
3. Общие исправления и улучшения сначала делаются в `crank-community`, затем переносятся в private repositories.
|
||||
4. Удаление или ограничение Community functionality делается только в `crank-community`.
|
||||
5. Private repositories должны хранить только свой product delta, а не полную независимую копию всей эволюции продукта.
|
||||
|
||||
## 7. Практический вывод
|
||||
|
||||
Следующий управленческий шаг после завершения текущего boundary-трека:
|
||||
Для текущего этапа это означает:
|
||||
|
||||
- начать physical split с `crank-community`
|
||||
- сделать whitelist-based import для `crank-community` и только его считать финальным public source of truth
|
||||
- создать `crank-enterprise`
|
||||
- создать `crank-cloud`
|
||||
|
||||
После этого уже можно планировать фактическое разнесение кода и delivery files.
|
||||
- `crank-community` нужно дочистить до окончательного public состояния;
|
||||
- затем использовать его как source base для общих улучшений;
|
||||
- коммерческие возможности продолжать развивать только в `crank-enterprise` и `crank-cloud`.
|
||||
|
||||
Reference in New Issue
Block a user