Skip to content

Contributing

antonyrag edited this page Aug 4, 2026 · 1 revision

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.

Dev setup

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.

Running tests

python -m pytest -q

Current 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.

Before opening a PR

  • Version bumps: update both pyproject.toml and src/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 in PineconeBackend before it shipped.

What we're honest about, and expect contributors to be too

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.

Questions or ideas before writing code?

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.

Clone this wiki locally