-
Notifications
You must be signed in to change notification settings - Fork 3
Contributing
ragleap-rag is open source and welcomes contributions. This page covers
the practical mechanics; project values are in
Roadmap and the repo's ROADMAP.md.
git clone https://github.com/antonyrag/ragleap-core.git
cd ragleap-core/packages/ragleap-rag
python3 -m venv venv && source venv/bin/activate
pip install -e ".[test,gemini,faiss,structured]"You'll need a local PostgreSQL with pgvector for the full test suite —
see README.md's setup section for connection details.
python -m pytest -qCurrent suite: 238 tests, real CI on every PR (compile-check, Docker build + smoke test, full pytest run, CodeQL security scan). All four must pass before merge — this isn't optional.
-
Version bumps: update both
pyproject.tomlandsrc/ragleap/__init__.py's__version__— grep-check both. -
CHANGELOG.md: add an entry under
[Unreleased]describing the real change. Never rewrite past version entries, even to fix a mistake — add a new entry documenting the correction instead. -
New optional dependencies: if you add anything needing a new extra
(e.g.
[structured]), make sure CI's test-install step actually includes it, or tests will silently exercise a weaker fallback path in CI while passing locally. -
New third-party SDK integrations: verify exact method
signatures/return types via
inspect.signature()/inspect.getsource()against the real installed package — don't trust documentation or memory. This caught a real pre-ship bug inPineconeBackendbefore it shipped.
If a feature is code-complete but not tested against a real live service, say so explicitly rather than implying it's fully verified. If a benchmark number wasn't actually measured, don't include it. This project's whole differentiator against larger competitors is that every claim here can be trusted at face value — help keep it that way.
Open an issue on antonyrag/ragleap-core describing what you're thinking — especially for anything touching scope (agentic features, new packages), since this project deliberately stays narrow. See Roadmap's "Considered and Rejected" section for the kind of scope creep we've already thought through and declined.