-
Notifications
You must be signed in to change notification settings - Fork 1
Add monorepo/workspace support #93
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Problem
Template only supports single-package projects. Teams with multiple related packages must maintain separate repositories or manually configure workspaces.
Proposed Solution
Add optional monorepo configuration:
Implementation Steps
-
Document workspace structure:
packages/directory for multiple packages- Shared
pyproject.tomlat root for workspace config - Per-package
pyproject.tomlfor individual packages
-
Configure uv workspaces in root pyproject.toml:
[tool.uv.workspace]sectionmembers = ["packages/*"]
-
Update doit tasks to support workspaces:
doit test --package=name- Test specific packagedoit test- Test all packagesdoit build --package=name- Build specific package
-
Shared configuration:
- Common ruff/mypy config at root
- Per-package overrides where needed
- Shared dev dependencies
-
CI updates: Matrix build for each package or unified build
-
Create example:
examples/monorepo/showing:- Core library package
- CLI package depending on core
- Shared types package
Documentation
docs/advanced/monorepo.mdexplaining setup and tradeoffs
Success Criteria
- Workspace configuration documented
- doit tasks support
--packageflag - Example monorepo structure provided
- CI handles multiple packages
- Documentation covers monorepo setup
Additional Context
Complexity: High - Significant changes to build system and CI
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request