Contributing to RAG Modulo¶
Thank you for your interest in contributing to RAG Modulo! This guide will help you get started.
Getting Started¶
- Fork the Repository
- Fork the RAG Modulo repository
-
Clone your fork locally
-
Set Up Development Environment
- Follow the Installation Guide
- Run
make local-dev-setupto install dependencies - Start infrastructure:
make local-dev-infra
Development Workflow¶
Making Changes¶
-
Create a Branch
-
Make Your Changes
- Follow our Code Quality Standards
- Write tests for new functionality
-
Update documentation as needed
-
Run Tests
-
Run Linting
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 featuresfix:- Bug fixesdocs:- Documentation changestest:- Test changesrefactor:- Code refactoringchore:- Maintenance tasks
Pull Request Process¶
- Create Pull Request
- Push your branch to your fork
- Create PR against
mainbranch -
Fill out PR template completely
-
CI/CD Checks
- All tests must pass
- Linting checks must pass
-
Security scans must pass
-
Code Review
- Address review feedback
- Keep PR focused on single feature/fix
- 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?¶
- Check FAQ
- Review Development Docs
- Open an issue for 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!