split: bootstrap community repository
This commit is contained in:
@@ -39,6 +39,15 @@ Verification:
|
|||||||
|
|
||||||
Progress:
|
Progress:
|
||||||
- done:
|
- done:
|
||||||
|
- `crank-community` now contains the first imported public baseline from the current monorepo
|
||||||
|
- bootstrap templates have been pushed into:
|
||||||
|
- `crank-community`
|
||||||
|
- `crank-enterprise`
|
||||||
|
- `crank-cloud`
|
||||||
|
- all `3` target repositories now exist:
|
||||||
|
- `crank-community`
|
||||||
|
- `crank-enterprise`
|
||||||
|
- `crank-cloud`
|
||||||
- public target repository `crank-community` now exists and can receive bootstrap templates once the remaining private repositories are created
|
- public target repository `crank-community` now exists and can receive bootstrap templates once the remaining private repositories are created
|
||||||
- gate for creating `3` target 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
|
||||||
@@ -49,10 +58,8 @@ Progress:
|
|||||||
- bootstrap templates now exist for `crank-community`, `crank-enterprise`, and `crank-cloud`, including initial README and workflow skeletons
|
- bootstrap templates now exist for `crank-community`, `crank-enterprise`, and `crank-cloud`, including initial README and workflow skeletons
|
||||||
- `crank-runtime` now has protocol feature seams, and the runtime crate compiles with `--no-default-features` as a `REST-only` base
|
- `crank-runtime` now has protocol feature seams, and the runtime crate compiles with `--no-default-features` as a `REST-only` base
|
||||||
- pending:
|
- pending:
|
||||||
- next management gate is to create the remaining private target repositories:
|
- trim `crank-community` from bootstrap baseline to the final public Community source of truth
|
||||||
- `crank-enterprise`
|
- continue physical split by isolating `enterprise/cloud` delta away from the extracted Community base
|
||||||
- `crank-cloud`
|
|
||||||
- after all `3` repositories exist, move the prepared bootstrap templates into their roots before physical split starts
|
|
||||||
|
|
||||||
## Planned
|
## Planned
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,10 @@
|
|||||||
- создание `crank-community`, `crank-enterprise` и `crank-cloud` должно быть отдельным осознанным шагом;
|
- создание `crank-community`, `crank-enterprise` и `crank-cloud` должно быть отдельным осознанным шагом;
|
||||||
- до этого момента в текущем репозитории нужно завершить capability model, extension seams и public contracts;
|
- до этого момента в текущем репозитории нужно завершить capability model, extension seams и public contracts;
|
||||||
- физическое вынесение private code нельзя начинать раньше, чем эти три целевых repositories созданы и для них определены delivery boundaries.
|
- физическое вынесение private code нельзя начинать раньше, чем эти три целевых repositories созданы и для них определены delivery boundaries.
|
||||||
- на текущий момент public repository `crank-community` уже создан; следующий обязательный внешний шаг — создание private repositories `crank-enterprise` и `crank-cloud`.
|
- все три целевых repositories уже созданы;
|
||||||
|
- bootstrap templates уже перенесены в целевые repositories;
|
||||||
|
- `crank-community` уже получил первый импорт public baseline;
|
||||||
|
- следующий шаг — начать physical split, не оставляя текущий monorepo source of truth для всех трех редакций.
|
||||||
|
|
||||||
## 6. Техническая стратегия разделения
|
## 6. Техническая стратегия разделения
|
||||||
|
|
||||||
|
|||||||
@@ -95,6 +95,10 @@ Community release должен поставлять:
|
|||||||
|
|
||||||
нельзя считать physical packaging split завершенным.
|
нельзя считать physical packaging split завершенным.
|
||||||
|
|
||||||
|
Для первичного импорта Community baseline из текущего monorepo используется:
|
||||||
|
|
||||||
|
- `scripts/export-community.sh`
|
||||||
|
|
||||||
## 7. Минимальный operator checklist
|
## 7. Минимальный operator checklist
|
||||||
|
|
||||||
Перед публикацией Community release нужно подтвердить:
|
Перед публикацией Community release нужно подтвердить:
|
||||||
|
|||||||
@@ -148,9 +148,13 @@
|
|||||||
Текущий статус:
|
Текущий статус:
|
||||||
|
|
||||||
- `crank-community` уже создан;
|
- `crank-community` уже создан;
|
||||||
- до начала physical split остаются private repositories:
|
- `crank-enterprise` уже создан;
|
||||||
- `crank-enterprise`
|
- `crank-cloud` уже создан;
|
||||||
- `crank-cloud`
|
- bootstrap templates уже перенесены в новые repositories;
|
||||||
|
- `crank-community` уже получил первый импорт public baseline;
|
||||||
|
- следующий шаг уже не организационный, а технический:
|
||||||
|
- очистить `crank-community` до финального public Community source of truth;
|
||||||
|
- затем продолжить вынос `enterprise/cloud` delta.
|
||||||
|
|
||||||
Bootstrap templates для этого шага уже должны быть подготовлены заранее в текущем репозитории:
|
Bootstrap templates для этого шага уже должны быть подготовлены заранее в текущем репозитории:
|
||||||
|
|
||||||
|
|||||||
@@ -208,9 +208,11 @@ Private repository.
|
|||||||
Текущий статус:
|
Текущий статус:
|
||||||
|
|
||||||
- `crank-community` уже создан;
|
- `crank-community` уже создан;
|
||||||
- до старта physical split остаются внешние шаги:
|
- `crank-enterprise` уже создан;
|
||||||
- создать `crank-enterprise`
|
- `crank-cloud` уже создан;
|
||||||
- создать `crank-cloud`
|
- bootstrap templates уже перенесены в целевые repositories;
|
||||||
|
- `crank-community` уже получил первый импорт public baseline из текущего monorepo;
|
||||||
|
- management gate закрыт, следующий шаг — начать physical split.
|
||||||
|
|
||||||
Пока эти четыре пункта не выполнены, physical split не начинается.
|
Пока эти четыре пункта не выполнены, physical split не начинается.
|
||||||
|
|
||||||
@@ -224,8 +226,8 @@ Private repository.
|
|||||||
|
|
||||||
Следующий управленческий шаг после завершения текущего boundary-трека:
|
Следующий управленческий шаг после завершения текущего boundary-трека:
|
||||||
|
|
||||||
- создать `crank-enterprise`
|
- начать physical split с `crank-community`
|
||||||
- создать `crank-cloud`
|
- довести `crank-community` от baseline-import до финального public source of truth
|
||||||
- создать `crank-enterprise`
|
- создать `crank-enterprise`
|
||||||
- создать `crank-cloud`
|
- создать `crank-cloud`
|
||||||
|
|
||||||
|
|||||||
@@ -37,3 +37,14 @@ Usage:
|
|||||||
```bash
|
```bash
|
||||||
./scripts/staging-note-block.sh rmcp.itexp.me abc1234 "codex + operator" partial
|
./scripts/staging-note-block.sh rmcp.itexp.me abc1234 "codex + operator" partial
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## export-community.sh
|
||||||
|
|
||||||
|
Helper that replaces the working tree of the extracted `crank-community`
|
||||||
|
repository with the tracked Community baseline from this monorepo.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/export-community.sh /path/to/crank-community-working-tree
|
||||||
|
```
|
||||||
|
|||||||
Executable
+35
@@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat <<'EOF'
|
||||||
|
Usage:
|
||||||
|
./scripts/export-community.sh /path/to/crank-community-working-tree
|
||||||
|
|
||||||
|
The target directory must already be a git working tree for crank-community.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $# -ne 1 ]]; then
|
||||||
|
usage >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
repo_root="$(git rev-parse --show-toplevel)"
|
||||||
|
target_dir="$(cd "$1" && pwd)"
|
||||||
|
|
||||||
|
if [[ ! -d "$target_dir/.git" ]]; then
|
||||||
|
echo "target is not a git working tree: $target_dir" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "$target_dir" -mindepth 1 -maxdepth 1 ! -name .git -exec rm -rf {} +
|
||||||
|
|
||||||
|
git -C "$repo_root" ls-files -z -- . ':(exclude)templates/repositories/**' \
|
||||||
|
| rsync -a --delete --from0 --files-from=- "$repo_root/" "$target_dir/"
|
||||||
Reference in New Issue
Block a user