Contributions welcome — bug fixes, new benchmarks, documentation improvements. This guide covers setup, conventions, and the PR process.
git clone https://github.com/scitix/sieval.git
cd sieval
pdm install -G dev -G test
pre-commit installVerify your setup:
ruff check sieval/ tests/
ruff format --check sieval/ tests/
ty check sieval/
python -m pytest tests/unit/ -vsieval/
├── core/ # Async staged execution engine (zero upper-layer deps)
├── infer/ # Inference service orchestration (depends on core only)
├── tasks/ # Task implementations (100+ benchmarks)
├── datasets/ # Dataset loaders
├── cli/ # CLI entry point (depends on all modules)
├── community/ # Third-party evaluation adaptations
└── probe/ # Quality verification [Planned]
tests/
├── unit/ # Mirrors sieval/ structure
├── integration/ # Mock env, CI-safe
├── acceptance/ # Release gates — alignment/ (TR reproduction records) + performance/ (perf regression)
├── performance/ # Diagnostic benchmarks (on-demand)
└── tasks/ # Manual scripts — real API, NOT in CI
cli → all modules
tasks → core + datasets + community
datasets → core + community
core → zero upper-layer dependencies
infer → core only
Do not put task-specific logic into core/.
- Formatter/Linter:
ruff - Type checker:
ty(primary),mypystrict (secondary, deferred) - Imports: relative within same package, absolute across packages
- AI-generated code: include
AI-Generated Code - <model> (<provider>)as the last line of the module-level docstring
python -m pytest -v # all tests
python -m pytest tests/unit/ tests/integration/ --cov --cov-fail-under=95 -v # with coverage
python -m pytest tests/acceptance/ -v -s # release gate
ruff check sieval/ tests/ && ruff format sieval/ tests/ # lint
ty check sieval/ # type checktests/unit/ must mirror sieval/ — e.g. sieval/core/runners/foo.py → tests/unit/core/runners/test_foo.py.
See tests/README.md for mock infrastructure and full command reference.
- Create dataset in
sieval/datasets/ - Create task in
sieval/tasks/— file naming:<task>_<N>shot_<mode>.py(seesieval/tasks/CLAUDE.md) - Add unit tests under
tests/unit/datasets/andtests/unit/tasks/mirroring the source layout - Run
python scripts/sync_package_stubs.pyandpython scripts/sync_meta_index.pyto regenerate type stubs and the registry - Third-party evaluation code goes in
sieval/community/with proper attribution
- Fork the repo and create a feature branch
- Make your changes with clear, focused commits
- Rebase onto the latest
mainbefore submitting - Open a PR — fill in all applicable sections of the PR template
- Link related issues:
Closes #123,Refs #456
For bugs or feature requests, use the issue templates.