Thank you for your interest in contributing to Code Graph RAG! We welcome contributions from the community.
- Browse Issues: Check out our GitHub Issues to find tasks that need work
- Pick an Issue: Choose an issue that interests you and matches your skill level
- Comment on the Issue: Let us know you're working on it to avoid duplicate effort
- Fork the Repository: Create your own fork to work on
- Create a Branch: Use a descriptive branch name like
feat/add-featureorfix/bug-description
-
Set up Development Environment:
git clone https://github.com/YOUR-USERNAME/code-graph-rag.git cd code-graph-rag uv sync --extra treesitter-full --extra test --extra dev
-
Make Your Changes:
- Follow the existing code style and patterns
- Add tests for new functionality
- Update documentation if needed
-
Test Your Changes:
- Run the existing tests to ensure nothing is broken
- Test your new functionality thoroughly
-
Submit a Pull Request:
- Push your branch to your fork
- Create a pull request against the main repository
- Reference the issue number in your PR description
- Provide a clear description of what you've changed and why
- Keep PRs focused on a single issue or feature
- Write clear, descriptive commit messages
- Include tests for new functionality
- Update documentation when necessary
- Be responsive to feedback during code review
- PydanticAI Only: This project uses PydanticAI as the official agentic framework. Do not introduce other frameworks like LangChain, CrewAI, or AutoGen.
- Heavy Pydantic Usage: Use Pydantic models extensively for data validation, serialization, and configuration
- Package Management: Use
uvfor all dependency management and virtual environments - Code Quality: Use
rufffor linting and formatting - runruff checkandruff formatbefore submitting - Type Safety: Use type hints everywhere and run
mypyfor type checking
- uv: Package manager and dependency resolver
- ruff: Code linting and formatting (replaces flake8, black, isort)
- mypy: Static type checking
- pytest: Testing framework
This project uses pre-commit to automatically run checks before each commit, ensuring code quality and consistency.
To get started, first make sure you have the development dependencies installed:
uv sync --extra treesitter-full --extra test --extra devThen, install the git hooks:
pre-commit install
pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooksNow, pre-commit will run automatically on git commit.
- Follow Python PEP 8 guidelines
- Use type hints for all function signatures and class attributes
- Write clear, self-documenting code
- Add docstrings for public functions and classes
- Use Pydantic models for data structures and validation
If you have questions about contributing, feel free to:
- Open a discussion on GitHub
- Comment on the relevant issue
- Reach out to the maintainers
We appreciate your contributions!
If you have questions about contributing, feel free to:
- Open a discussion on GitHub
- Comment on the relevant issue
- Reach out to the maintainers
We appreciate your contributions!
This project uses a Makefile for streamlined development workflow:
# Set up complete development environment (recommended for new contributors)
make dev
# Run all tests
make test
# Clean up build artifacts and cache
make clean
# View all available commands
make help