Thanks for your interest in contributing to CoreRag!
- Fork the repository
- Clone your fork and set up the development environment:
git clone https://github.com/your-username/CoreRag.git
cd CoreRag
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
python -m spacy download en_core_web_lg- Copy
.env.exampleto.envand configure paths - Install pre-commit hooks:
pre-commit install
- Create a branch from
mainfor your changes - Make your changes following the conventions below
- Run the test suite:
pytest - Run linting:
ruff check src/ tests/ && black --check src/ tests/ - Run the security scanner:
./scripts/security_scan.sh --staged - Submit a pull request
- Python 3.12+, type hints on all function signatures
blackat 100 character line length,rufffor linting- Imports: stdlib, then third-party, then local (
from src.models import ...) - Dataclasses or Pydantic for data structures
- Commit format:
<type>: <description>(feat/fix/docs/refactor/test/chore/perf)
pytest # Full suite with coverage
pytest -m "not slow" # Skip slow tests
pytest -m "not integration" # Skip integration tests
pytest -k "test_name" # Single testAll new code should include tests. Pytest is configured with coverage reporting by default.
- No real personal data in committed files — use synthetic test data
- No hardcoded paths, API keys, or credentials
- Run
./scripts/security_scan.shbefore committing - See SECURITY.md for the full security policy
Open an issue on GitHub with:
- Steps to reproduce
- Expected vs actual behavior
- Python version and OS
By contributing, you agree that your contributions will be licensed under the MIT License.