49 lines
946 B
Markdown
49 lines
946 B
Markdown
# ADR-0003: Use Git Submodules for External Projects
|
|
|
|
**Status**: Accepted
|
|
**Date**: 2025-01-27
|
|
**Deciders**: Workspace maintainers
|
|
|
|
---
|
|
|
|
## Context
|
|
|
|
We need to include external projects or existing repositories in monorepos. Options include:
|
|
- Git submodules
|
|
- Copying code into monorepo
|
|
- Converting to workspace packages
|
|
|
|
---
|
|
|
|
## Decision
|
|
|
|
We will use Git submodules for:
|
|
- External repositories
|
|
- Existing projects that should maintain independent versioning
|
|
- Projects maintained separately
|
|
|
|
We will use workspace packages for:
|
|
- New shared code
|
|
- Internal libraries
|
|
- Code that benefits from unified versioning
|
|
|
|
---
|
|
|
|
## Consequences
|
|
|
|
### Positive
|
|
- ✅ Maintains repository independence
|
|
- ✅ Allows independent versioning
|
|
- ✅ Preserves git history
|
|
- ✅ Easier external contribution
|
|
|
|
### Negative
|
|
- ⚠️ Submodule complexity
|
|
- ⚠️ Requires submodule management knowledge
|
|
- ⚠️ Can complicate workflow
|
|
|
|
---
|
|
|
|
**Status**: Accepted
|
|
|