-
Notifications
You must be signed in to change notification settings - Fork 0
Multi Repo Workflow
James Maes edited this page Dec 28, 2025
·
1 revision
The QQQ ecosystem spans 25+ repositories. This guide covers how to coordinate changes, manage issues, and release across multiple repos.
qqq-core (foundation)
├── qqq-frontend-core (TypeScript client)
│ └── qqq-frontend-material-dashboard (React dashboard)
├── qbit-bom (parent POM)
│ └── All QBits
└── qqq-orb (CI/CD)
| Repo | Purpose | Default Branch |
|---|---|---|
| qqq | Core framework | develop |
| qqq-frontend-core | TypeScript client | develop |
| qqq-frontend-material-dashboard | React dashboard | develop |
| qbit-bom | QBit parent POM | main |
| qqq-orb | CircleCI orb | develop |
| meta-manager | Ecosystem management | main |
All QQQ ecosystem work is tracked in GitHub Project #12.
| Column | Purpose |
|---|---|
| Backlog | Triaged issues awaiting work |
| In Progress | Actively being worked on |
| In Review | PR submitted, awaiting review |
| Done | Merged to develop |
| Released | Included in a release |
Standard labels across all repos:
| Label | Purpose |
|---|---|
bug |
Bug reports |
enhancement |
Feature requests |
documentation |
Documentation updates |
breaking-change |
Breaking API changes |
multi-repo |
Spans multiple repositories |
priority:p1-p4 |
Priority level |
severity:critical-low |
Bug severity |
- Create Issue - Open issue in the primary affected repo
-
Label Multi-Repo - Add
multi-repolabel - Link in Project - Add to Project #12
- Create Related Issues - Open linked issues in each affected repo
- Coordinate PRs - Submit PRs in dependency order
When changes touch multiple repos, merge in this order:
- qqq (core) - Foundation changes first
- qqq-frontend-core - TypeScript client updates
- qqq-frontend-material-dashboard - Dashboard updates
- qbit-bom - Update parent POM versions
- QBits - Update individual QBits
- qqq-orb - CI/CD updates
1. qqq: Add new API endpoint
└── PR #123 merged to develop
2. qqq-frontend-core: Add TypeScript types
└── PR #45 (depends on qqq #123)
└── Merged after qqq release
3. qqq-frontend-material-dashboard: Add UI
└── PR #67 (depends on frontend-core #45)
└── Merged after frontend-core release
Use this template for the primary issue:
## Summary
Description of the cross-repo change
## Affected Repositories
- [ ] qqq - Core changes
- [ ] qqq-frontend-core - TypeScript updates
- [ ] qqq-frontend-material-dashboard - UI changes
## Related Issues
- qqq-frontend-core#45
- qqq-frontend-material-dashboard#67
## Implementation Order
1. qqq: [description]
2. frontend-core: [description]
3. dashboard: [description]
## Compatibility Notes
- Requires qqq >= X.Y.Z
- Breaking change: [yes/no]Link related issues across repos:
- Use
Fixes QRun-IO/repo#123in PR descriptions - Add cross-references in issue comments
- Ensure all related issues are in Project #12
- Frontend versions track core versions (qqq 0.27.x = frontend 0.27.x)
- QBits specify minimum QQQ version compatibility
- See Compatibility Matrix for details
When releasing breaking changes:
- Freeze qqq - Complete all core changes
- Release qqq - Tag and publish
- Update Dependencies - Update frontend/QBit POMs
- Release Dependents - Tag and publish each
- Update Compatibility - Update meta-manager docs
- All related PRs merged
- All CI checks passing
- Version numbers aligned
- Compatibility matrix updated
- CHANGELOG entries added
- GitHub Releases created
Consistent branch names across repos:
# Feature spanning repos
feature/add-streaming-api # Same name in all repos
# Bug fix spanning repos
fix/issue-123-null-pointer # Reference primary issueKeep branches in sync:
- Daily - Pull upstream changes to feature branches
- Before PR - Rebase on target branch
- After Merge - Delete feature branches in all repos
The meta-manager repo coordinates:
- Compatibility Matrix - Version compatibility tracking
- Repository Catalog - List of all repos
- Automation Scripts - Cross-repo operations
The qqq-orb provides CI/CD:
- Consistent build/test pipelines
- Automated GitHub Releases
- Maven Central publishing
- Add entity support to
qqqcore - Add TypeScript types to
qqq-frontend-core - Add UI components to
qqq-frontend-material-dashboard - Update QBits that use entities
- Follow Deprecation Policy
- Add deprecation warnings in minor release
- Coordinate removal across all repos
- Release as major version
- Create from template
- Register in
qbit-bom - Add to meta-manager compatibility docs
- Publish to Maven Central
- Release Flow - Release process
- Branching and Versioning - Branch strategy
- Compatibility Matrix - Version compatibility
- QBit Development - Creating QBits