Thank you for your interest in contributing to Xantus! This document provides guidelines for contributing to the project.
- Use the GitHub Issues tracker
- Describe the bug in detail
- Include steps to reproduce
- Mention your environment (OS, Python version, etc.)
- Use GitHub Issues with the "enhancement" label
- Clearly describe the feature and its use case
- Explain why this feature would be useful
- Fork the repository
- Create a feature branch (
git checkout -b username/feature/your-feature) - Make your changes
- Test your changes thoroughly
- Commit with clear messages (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin username/feature/your-feature) - Open a Pull Request
-
Clone the repository with submodules:
git clone --recurse-submodules https://github.com/onamfc/rag-chat cd xantus -
Create a virtual environment:
python -m venv venv source venv/bin/activate # Linux/Mac # OR venv\Scripts\activate # Windows
-
Install dependencies:
pip install -r requirements.txt
-
Setup MCP (optional but recommended):
./setup_mcp.sh
-
Configure your environment:
cp .env.example .env # Edit .env with your settings
- Follow PEP 8 for Python code
- Use meaningful variable and function names
- Add docstrings to functions and classes
- Keep functions focused and modular
Before submitting a PR:
- Test your changes with different configurations
- Verify both local (Ollama) and cloud (Anthropic/OpenAI) providers work
- Test document upload, chat, and deletion features
- Ensure MCP integration still works if you modified related code
- Use clear, descriptive commit messages
- Start with a verb in present tense ("Add", "Fix", "Update")
- Reference issues when applicable (#123)
Feel free to open an issue for questions or discussions about contributing.
By contributing, you agree that your contributions will be licensed under the MIT License.