Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 38 additions & 21 deletions MIGRATION_PLAN.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,62 @@
# CodeFlow Monorepo Migration Plan

This document tracks the migration of all CodeFlow-related repositories into a unified monorepo structure.
This document tracks the migration of all CodeFlow-related repositories into a unified
monorepo structure. The decision to consolidate is recorded in
[docs/adr/0021-repository-structure.md](docs/adr/0021-repository-structure.md).

## Structure

- engine/ # Python core engine project
- desktop/ # Electron/Tauri app
- vscode-extension/ # VS Code extension
- website/ # Docs/marketing
- orchestration/ # Infra, bootstrap, and shared orchestration assets
- templates/ # Workflow templates
- tools/ # Dev tools/scripts
- tests/ # Unified test suite for engine
- docs/ # Shared documentation
```
engine/ # Python core engine project
desktop/ # Tauri + React desktop application
vscode-extension/ # VS Code extension
website/ # Next.js marketing and documentation site
orchestration/ # Azure IaC, bootstrap scripts, and shared utility packages
docs/ # Shared project documentation
tools/ # Shared development tooling and helper scripts
```

## Current Status

Completed:
### Phase 1 — Code Consolidation ✅ Complete

1. Added monorepo migration scaffolding and shared documentation.
2. Imported `codeflow-desktop` into `desktop/`.
3. Imported `codeflow-website` into `website/`.
4. Imported `codeflow-orchestration` into `orchestration/`.
5. Imported `codeflow-vscode-extension` into `vscode-extension/`.
6. Added path-aware CI workflow (`.github/workflows/monorepo-ci.yml`).
7. Added archive and redirect guidance (`docs/LEGACY_REPO_REDIRECTS.md`).
8. Finalised repository structure decision (ADR-0021 accepted).

Pending:
### Phase 2 — Tooling Standardisation ⏳ In Progress

1. Normalize dependency management across Python and Node-based projects.
2. Add path-aware CI and release automation.
3. Consolidate duplicate docs, licenses, and contribution guidance.
4. Complete archive and redirect steps for the former split repositories.
1. Normalise dependency management across Python and Node.js projects.
2. Add path-aware release automation for each component.
3. Consolidate duplicate `README`, `LICENSE`, and `CONTRIBUTING` files.
4. Archive legacy split repositories and update their READMEs to redirect here.

## Migration Steps
## Future Extraction Candidates

1. Import code from each repo, preserving git history.
The following components *could* be extracted to separate repositories in future if
specific conditions are met (see ADR-0021 for full rationale):

| Component | Condition for extraction |
|---|---|
| `website/` | Content team needs write access without engine write access |
| `orchestration/bootstrap/` | A shared `justaghost/*` or `phoenixvc/*` infra repo is created |

No extraction is recommended at this stage.

## Migration Steps (Reference)

1. Import code from each repo, preserving git history (`git subtree`).
2. Resolve conflicts and update imports.
3. Centralize CI/CD workflows.
3. Centralise CI/CD workflows with path-aware filtering.
4. Update documentation and onboarding.
5. Deprecate old repositories.
5. Archive legacy split repositories.
6. Announce migration and monitor feedback.

---

For detailed instructions, see MIGRATION_GUIDE.md.
For detailed instructions, see [MIGRATION_GUIDE.md](MIGRATION_GUIDE.md).
Loading