Contributing Guide

Thank you for considering contributing to ConfigBuddy! This document provides guidelines and instructions for contributing.

Development Setup

  1. Fork and clone the repository:

    git clone https://github.com/your-username/configbuddy.git
    cd configbuddy
    
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install development dependencies:

    pip install -e ".[dev]"
    
  4. Install pre-commit hooks:

    pre-commit install
    

Code Style

We use the following tools to maintain code quality:

  • black: Code formatting

  • isort: Import sorting

  • ruff: Linting

  • mypy: Type checking

These checks are automatically run by pre-commit hooks.

Running Tests

Run tests using pytest:

pytest

For coverage report:

pytest --cov=configbuddy

Pull Request Process

  1. Create a new branch for your feature:

    git checkout -b feature-name
    
  2. Make your changes and commit them:

    git add .
    git commit -m "Description of changes"
    
  3. Push to your fork:

    git push origin feature-name
    
  4. Open a Pull Request on GitHub

Guidelines

  • Write meaningful commit messages

  • Add tests for new features

  • Update documentation as needed

  • Follow the existing code style

  • Add type hints to new code

  • Write docstrings for new functions/classes

Code of Conduct

Please note that ConfigBuddy has a Code of Conduct. By participating in this project, you agree to abide by its terms.