Developer Documentation
๐ Location of Developer Documentation
Developer documentation for Kepler and related projects is maintained within
each project's repository under the docs/developer/
directory.
๐ Kepler Developer Documentation
For comprehensive developer documentation including architecture, development workflows, testing strategies, and contribution guidelines, please visit:
๐ Kepler Developer Documentation
What You'll Find There
- Architecture Overview - Service-oriented design patterns and component structure
- Development Environment Setup - Docker Compose, local builds, and testing
- Power Attribution Guide - Deep dive into energy measurement and attribution algorithms
- Pre-commit Hooks - Code quality and automated checks setup
- Release Workflow - How releases are created and managed
- Testing Strategy - Unit tests, integration tests, and race detection
- Service Interfaces - Understanding the service framework and lifecycle management
- Configuration Management - YAML hierarchy and CLI flag systems
๐ ๏ธ Quick Developer Setup
For immediate development setup, the key commands are:
# Clone and build
git clone https://github.com/sustainable-computing-io/kepler.git
cd kepler
make build
# Development with Docker Compose (includes Grafana + Prometheus)
cd compose/dev
docker-compose up -d
# Run tests
make test
# Local development
sudo ./bin/kepler --config hack/config.yaml
๐ Related Project Documentation
For other projects in the Kepler ecosystem, check their respective repositories:
- Kepler Operator: sustainable-computing-io/kepler-operator
- Kepler Model Server: sustainable-computing-io/kepler-model-server
๐ค Contributing
Before contributing to Kepler, please review:
- Developer Documentation - Technical implementation details
- Contributing Guide - General contribution process
- Code of Conduct - Community guidelines
๐ฌ Developer Support
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions and share ideas
- Slack Channel: #kepler in CNCF Slack
Developer documentation is actively maintained in the project repository to ensure it stays current with the codebase.