Skip to content

Latest commit

 

History

History
125 lines (102 loc) · 4.57 KB

CONTRIBUTING.md

File metadata and controls

125 lines (102 loc) · 4.57 KB

Contributing to Kaizen

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.

Table of Contents

  1. Code of Conduct
  2. Getting Started
  3. Development Setup
  4. How to Contribute
  5. Pull Request Process
  6. Style Guide
  7. Setting Up Language Models
  8. Community Guidelines

Code of Conduct

We are committed to providing a welcoming and inclusive environment for all contributors. Please read and follow our Code of Conduct.

Getting Started

  1. Fork the repository to your GitHub account.
  2. Clone your fork to your local machine:
    git clone https://github.com/your-username/kaizen.git
    cd kaizen
  3. Add the original repository as an upstream remote:
    git remote add upstream https://github.com/Cloud-Code-AI/kaizen.git

Development Setup

  1. Install dependencies:
    poetry install
  2. Copy the .env.example file to create a new .env file:
    cp .env.example .env
  3. Fill in the necessary environment variables in the .env file.
  4. Create and configure the config.json file in the root directory. Refer to the Setting Up Language Models section for details.

How to Contribute

  1. Find an issue to work on or create a new one if you have a feature idea.
  2. Create a new branch for your work:
    git checkout -b feature/your-feature-name
  3. Make your changes, following our Style Guide.
  4. Write or update tests as necessary.
  5. Run tests to ensure all pass:
    pytest .
  6. Commit your changes with a clear and concise commit message.
  7. Push your branch to your fork:
    git push origin feature/your-feature-name
  8. Open a pull request against the main repository.

Pull Request Process

  1. Ensure any install or build dependencies are removed before the end of the layer when doing a build.
  2. Update the README.md with details of changes to the interface, including new environment variables, exposed ports, useful file locations, and container parameters.
  3. Increase the version numbers in any examples files and the README.md to the new version that this Pull Request would represent.
  4. Your pull request will be reviewed by maintainers, who may request changes or improvements.
  5. Once approved, your PR will be merged into the main branch.

Style Guide

  • 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.

Setting Up Language Models

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.

Community Guidelines

  • 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.