Skip to content

Contributing to RAG Modulo

Thank you for your interest in contributing to RAG Modulo! This guide will help you get started.

Getting Started

  1. Fork the Repository
  2. Fork the RAG Modulo repository
  3. Clone your fork locally

  4. Set Up Development Environment

  5. Follow the Installation Guide
  6. Run make local-dev-setup to install dependencies
  7. Start infrastructure: make local-dev-infra

Development Workflow

Making Changes

  1. Create a Branch

    git checkout -b feature/your-feature-name
    

  2. Make Your Changes

  3. Follow our Code Quality Standards
  4. Write tests for new functionality
  5. Update documentation as needed

  6. Run Tests

    make test-atomic      # Fast schema tests (~5 sec)
    make test-unit-fast   # Unit tests (~30 sec)
    make test-integration # Integration tests (~2 min)
    

  7. Run Linting

    make pre-commit-run   # Full pre-commit checks
    make quick-check      # Fast format check
    

Code Quality Requirements

  • Line Length: 120 characters maximum
  • Type Hints: Required for all functions
  • Test Coverage: Minimum 60%
  • Linting: All Ruff, MyPy, and Pylint checks must pass

See Development Workflow for details.

Commit Guidelines

  • Use descriptive commit messages
  • Follow conventional commits format:
  • feat: - New features
  • fix: - Bug fixes
  • docs: - Documentation changes
  • test: - Test changes
  • refactor: - Code refactoring
  • chore: - Maintenance tasks

Pull Request Process

  1. Create Pull Request
  2. Push your branch to your fork
  3. Create PR against main branch
  4. Fill out PR template completely

  5. CI/CD Checks

  6. All tests must pass
  7. Linting checks must pass
  8. Security scans must pass

  9. Code Review

  10. Address review feedback
  11. Keep PR focused on single feature/fix
  12. Rebase if needed to keep history clean

Testing Guidelines

  • Write unit tests for new services/functions
  • Add integration tests for new features
  • Ensure tests are isolated and reproducible
  • Use fixtures for common test data

See Testing Guide for comprehensive testing documentation.

Documentation

  • Update documentation for new features
  • Add docstrings to all public functions/classes
  • Update API documentation if changing endpoints
  • Keep README.md and CLAUDE.md current

Questions?

Code of Conduct

Be respectful, constructive, and collaborative. We're all here to build great software together.


Thank you for contributing to RAG Modulo!