Thank you for your interest in contributing to Kaizen! We're excited to have you join our community. This document will guide you through the process of contributing to our project.
For more information on how to contribute to Kaizen, please refer to the Contributing Guide.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Pull Request Process
- Style Guide
- Setting Up Language Models
- Community Guidelines
We are committed to providing a welcoming and inclusive environment for all contributors. Please read and follow our Code of Conduct.
- Fork the repository to your GitHub account.
- Clone your fork to your local machine:
git clone https://github.com/your-username/kaizen.git cd kaizen
- Add the original repository as an upstream remote:
git remote add upstream https://github.com/Cloud-Code-AI/kaizen.git
- Install dependencies:
poetry install
- Copy the
.env.example
file to create a new.env
file:cp .env.example .env
- Fill in the necessary environment variables in the
.env
file. - Create and configure the
config.json
file in the root directory. Refer to the Setting Up Language Models section for details.
- Find an issue to work on or create a new one if you have a feature idea.
- Create a new branch for your work:
git checkout -b feature/your-feature-name
- Make your changes, following our Style Guide.
- Write or update tests as necessary.
- Run tests to ensure all pass:
pytest .
- Commit your changes with a clear and concise commit message.
- Push your branch to your fork:
git push origin feature/your-feature-name
- Open a pull request against the main repository.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md with details of changes to the interface, including new environment variables, exposed ports, useful file locations, and container parameters.
- Increase the version numbers in any examples files and the README.md to the new version that this Pull Request would represent.
- Your pull request will be reviewed by maintainers, who may request changes or improvements.
- Once approved, your PR will be merged into the main branch.
- Use Prettier for code formatting.
- Follow the Airbnb JavaScript Style Guide for JavaScript code.
- Use Conventional Commits for commit messages.
- For CSS/SCSS:
- Use kebab-case for class names (e.g.,
.my-class-name
). - Avoid using IDs for styling.
- Use variables for colors, fonts, and other repeated values.
- Use kebab-case for class names (e.g.,
To configure Language Models (LLMs) for your project, update the config.json
file in the root directory. Here's a basic structure:
{
"language_model": {
"provider": "litellm",
"enable_observability_logging": true,
"redis_enabled": true,
"models": [
{
"model_name": "default",
"litellm_params": {
"model": "gpt-4o-mini",
"input_cost_per_token": 0.000000015,
"output_cost_per_token": 0.0000006
}
}
]
},
"github_app": {
"check_signature": false,
"auto_pr_review": true,
"edit_pr_desc": true,
"process_on_push": true,
"auto_unit_test_generation": false
}
}
Refer to the Setting Various LLMs guide for more detailed configuration options.
- Be respectful and inclusive in your interactions with other contributors.
- Participate in discussions and help other contributors.
- If you have questions or need help, don't hesitate to ask in our Community Chat.
Thank you for contributing to Kaizen! Your efforts help make our software better for everyone.