Skip to content

Contributing

Setup

git clone https://github.com/wskr00/pyrsql.git
cd pyrsql
uv sync --all-extras

Development workflow

uv run ruff check .          # lint
uv run ruff format .         # format
uv run mypy                  # type check
uv run pytest                # tests

Project standards

  • Google Python Style Guide
  • strict mypy type checking
  • ruff for linting and formatting
  • pytest with unit, integration, functional, performance layers
  • ORM-neutral core - zero ORM imports in pyrsql.core, pyrsql.ir, pyrsql.parsing, pyrsql.semantic

Test layers

Layer Purpose Run with
unit Isolated module/class tests pytest tests/unit/
integration Cross-component pipelines pytest tests/integration/
functional Public API behavior pytest tests/functional/
performance Hotspot benchmarks pytest tests/performance/

Docs

uv run mkdocs serve     # live preview at http://localhost:8000
uv run mkdocs build     # build static site

Pull requests

  • Keep PRs focused - one feature or fix per PR
  • Update docs if the public API changes
  • Run ruff check . && mypy && pytest before pushing
  • Performance PRs should include benchmark results