Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 1.54 KB

CONTRIBUTING.md

File metadata and controls

39 lines (29 loc) · 1.54 KB

Contributing

Thanks for your interest in contributing!

Development setup

  1. Install uv
  2. Fork and clone the repo
  3. uv sync --dev
  4. Bring up a local pgvector instance: docker compose -f docker-compose.dev.yml up -d
  5. export DATABASE_URL=postgresql://postgres:postgres@localhost:5434/postgres

Before submitting a PR

uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run pyright

CI (.github/workflows/ci.yml) runs the exact same commands against a real pgvector container on every push and PR, across Python 3.10–3.13, plus a separate job that builds the package and runs twine check on it. A green local run should mean a green CI run.

Guidelines

  • Every table/column identifier a tool accepts must be validated against information_schema/pg_catalog before being interpolated into SQL — see db.py. Never build a query from an unvalidated identifier or an unbounded raw-SQL string.
  • New tools should have tests that exercise them against the real pgvector container in docker-compose.dev.yml, not mocks — the whole point of this server is correct SQL generation.
  • Keep tools focused: one tool, one clear capability. If you're adding a flag that changes a tool's behavior substantially, consider whether it should be a separate tool instead.

AI-assisted contributions

If you used AI assistance, disclose it in the PR description. You should still understand and be able to explain every line of the change.