ICCC Monorepo
Status: 🚧 Placeholder - Under Planning Purpose: Unified monorepository for ICCC (International Cross-Chain Council) ecosystem projects.
Constitutional Status: This repository implements ICCC, a Tier-1 canonical sovereign system. See NOTICE.md and CANONICAL_CONSTITUTION.md for details.
Overview
ICCC Monorepo consolidates all ICCC-related projects into a single, unified repository structure. This enables shared code, unified versioning, simplified dependency management, and coordinated development across all ICCC initiatives.
Monorepo Structure
This monorepo uses git submodules to manage related projects:
iccc_monorepo/
├── .gitmodules # Git submodules configuration
├── iccc_portal/ # ICCC Portal application (submodule)
├── iccc_docs/ # ICCC Documentation (submodule)
├── packages/ # Shared packages (planned)
│ ├── iccc-shared/ # Shared TypeScript libraries
│ ├── iccc-api-client/ # API client libraries
│ └── iccc-schemas/ # JSON/GraphQL schemas
├── apps/ # Applications (planned)
│ └── [additional-apps]/ # Additional ICCC applications
├── tools/ # Development tools (planned)
└── docs/ # Monorepo documentation (planned)
Submodules
iccc_portal
Status: Active Description: ICCC Portal application - web-based portal for ICCC services and operations.
Features (Planned):
- User management interface
- Cross-chain governance interfaces
- Service management UI
- Analytics and reporting dashboards
iccc_docs
Status: Active Description: ICCC Documentation repository - comprehensive documentation for ICCC ecosystem.
Contents (Planned):
- Technical documentation
- API documentation
- User guides
- Governance documentation
- Integration guides
Getting Started
Clone with Submodules
# Clone repository with all submodules
git clone --recurse-submodules <repository-url>
cd iccc_monorepo
# Or if already cloned, initialize submodules
git submodule update --init --recursive
Update Submodules
# Update all submodules to latest commits
git submodule update --remote
# Update specific submodule
cd iccc_portal
git pull origin main
cd ..
git add iccc_portal
git commit -m "Update iccc_portal submodule"
Shared Resources (Planned)
Shared Packages
iccc-shared:
- Common utilities and types
- Configuration helpers
- Validation schemas
- Constants and enums
iccc-api-client:
- REST API clients
- GraphQL clients
- WebSocket clients
- Type definitions
iccc-schemas:
- JSON schemas
- GraphQL schemas
- Protocol schemas
- Validation schemas
Technology Stack (Planned)
Package Manager
- pnpm workspaces (recommended) or npm/yarn
Build Tooling
- Turborepo or Nx (for build orchestration)
- TypeScript
- ESLint / Prettier
Development Tools
- Vitest or Jest (testing)
- Husky (git hooks)
- Changesets (versioning)
Development Workflow (Planned)
Setup
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Start development servers
pnpm dev
Working with Submodules
# Make changes in submodule
cd iccc_portal
# Make changes and commit
git add .
git commit -m "Your changes"
git push
cd ..
# Update parent repo reference
git add iccc_portal
git commit -m "Update iccc_portal submodule"
git push
CI/CD Pipeline (Planned)
Workflow
- Lint & Type Check
- Unit Tests
- Integration Tests
- Build
- E2E Tests
- Deploy
Documentation
- Monorepo-level documentation in this repository
- Project-specific documentation in submodules:
- iccc_portal - Portal documentation
- iccc_docs - Comprehensive documentation
Related Projects
ICCC Ecosystem
- iccc_portal - Portal application (submodule)
- iccc_docs - Documentation (submodule)
Potential Integrations
- Cross-chain infrastructure
- Governance systems
- Documentation platforms
Contributing
When contributing:
- Follow monorepo standards
- Update affected submodules
- Run tests for all projects
- Update documentation
License
[To be determined]
Status
Current Status: 🚧 Placeholder Next Steps:
- Finalize monorepo structure
- Set up shared packages
- Configure build tooling
- Begin Phase 1 development
Last Updated: 2025-01-27