This guide provides step-by-step instructions for migrating CodeFlow repositories into a single monorepo.
- List all repositories to migrate.
- Define the target directory for each repo in the monorepo.
- Reserve
engine/as the canonical home for the Python engine project.
- Use
git subtreeorgit filter-repoto import each repo, preserving history. - Example (using git subtree):
git remote add codeflow-desktop <repo-url>
git fetch codeflow-desktop
git subtree add --prefix=desktop codeflow-desktop master --squash- Repeat for each repository.
codeflow-engine->engine/codeflow-desktop->desktop/codeflow-website->website/codeflow-orchestration->orchestration/codeflow-vscode-extension->vscode-extension/
- Deduplicate files and resolve naming conflicts.
- Update import paths and dependencies as needed.
- Reconcile duplicate root files such as
README.md,LICENSE,CONTRIBUTING.md, and CI workflows. - Keep component-local documentation inside each imported directory until shared standards are finalized.
- Move engine-specific build files under
engine/and update workflows to use path-aware working directories.
- Move CI/CD workflows to
.github/workflows/. - Set up component-aware builds for:
- root engine (Python)
desktop/website/orchestration/packages/@codeflow/utilsvscode-extension/
- Update
README.mdand docs to reflect new structure. - Document onboarding and contribution guidelines.
- Explicitly document which parts of the repository still retain their pre-monorepo layout.
- Add archive/redirect instructions for the old split repositories.
- Archive or mark old repositories as read-only.
- Update each legacy repository README to point contributors to this monorepo.
- Communicate changes to contributors and users.
- Publish a follow-up plan for workspace tooling standardization.
For questions, see MIGRATION_PLAN.md or contact the maintainers.