Development¶
Environment¶
uv sync --extra dev --extra integrations --extra docs
Quality gate¶
make prod
make pre-commit
The project requires formatting, Ruff, basedpyright, ty, pytest, and 100% line and branch coverage. Tests must exercise behavior rather than merely execute branches.
Documentation¶
make docs
make docs-serve
make docs regenerates llms-full.txt, stages exact Markdown sources for the
Copy as Markdown action, and runs a strict Zensical build. Every public Markdown
page must appear exactly once in navigation.
Repository layout¶
src/pydantic_gepa/ package source
tests/ behavioral and contract tests
examples/ runnable integrations
docs/ user documentation
scripts/llms.py documentation corpus generator
.agents/skills/ agent-facing package skill
Contribution rules¶
- Prefer exact types, then generics, then
Anyonly for truly dynamic boundaries. - Do not use
objectas a type-checking escape hatch. - Keep Pydantic Evals internal for common API changes.
- Add typed configuration instead of forwarding arbitrary GEPA kwargs.
- Preserve scoped candidate isolation under concurrency.
- Put unstable upstream APIs under
experimental. - Update runnable examples and docs with every public behavior change.
- Run the complete quality gate before committing.
Release checks¶
Build wheel and sdist, inspect their contents, verify optional dependency
boundaries, run examples that do not require credentials, build docs strictly,
and verify the hosted llms.txt and llms-full.txt endpoints.