Thanks for your interest in contributing to Kepler! This guide will help you get started with contributing to our project.
Kepler is a Go-based project focused on sustainable computing. Before contributing, it's helpful to:
- Have basic knowledge of Go programming
- Understand container technologies and Kubernetes
- Familiarize yourself with the project structure by exploring the repository
- Read our GOVERNANCE.md and MAINTAINERS.md documents
Our project adheres to the Linux Foundation's Generative AI Policy, which can be viewed at https://www.linuxfoundation.org/legal/generative-ai.
- Fork the repository on GitHub
- Clone your fork locally
- Set up your development environment (see below)
- Create a new branch for your work
- Make your changes
- Submit a pull request
Don't forget to sign your commits according to our DCO requirements!
Our project uses GitHub Actions for CI. Each PR will trigger automated builds and tests. Check the .github/workflows directory to understand our CI pipeline. Ensure your contributions pass all CI checks before requesting a review.
All submissions require review. We use GitHub pull requests for this purpose:
- Submit a pull request from your fork to our main repository
- Ensure all CI checks pass
- Address feedback from maintainers
- Once approved, a maintainer will merge your changes
Found a bug? Please report it by creating an issue with the bug template. Include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Screenshots or logs if applicable
- Your environment details (OS, Go version, etc.)
Enhancement suggestions are tracked as GitHub issues. Create an issue with the enhancement template and provide:
- A clear and descriptive title
- A detailed description of the proposed enhancement
- Any potential implementation ideas you have
- Why this enhancement would be useful to most Kepler users
For smaller improvements to existing functionality:
- Focus on a single, specific improvement
- Explain how your improvement makes Kepler better
- Provide context around why this improvement matters
- Link to any related issues or discussions
- Install Go 1.24.0+ (toolchain go1.24.9)
- Install pre-commit hooks:
pre-commit installSee docs/developer/pre-commit.md for more information.
Run tests with:
make testGenerate coverage reports with:
make coverageOur CI automatically runs tests and uploads coverage to Codecov.
Looking for a place to start?
- Look for issues labeled
good first issueorhelp wanted - Introduce yourself in a GitHub issue before starting work
- Read the code in the area you want to work on to understand patterns
- Ask questions in issues or on Slack if you need help
Remember that even small contributions like fixing typos or improving documentation are valuable!
Thanks for contributing to Kepler! 💚