JEVANY / DOCUMENTATION

Contributing

Install the development dependencies with Python 3.12 or newer:

python -m pip install -e '.[dev]'
python -m pytest tests -m 'not server' -q

To reproduce CI on a CPU machine, use Python 3.12 and uv 0.11.28:

uv venv --python 3.12
uv pip install --torch-backend cpu -e '.[dev]'
uv pip check
OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 .venv/bin/python -m pytest tests -m 'not server' -q -ra --strict-config --strict-markers
.venv/bin/python -m build

CI tests both the latest allowed dependencies and the minimum supported PyTorch, torchvision and Transformers versions. For the latter, add -c .github/constraints/minimum.txt to the install command in a fresh environment. Both jobs run the full CPU test suite and build the package; their artifacts include the resolved dependency versions and JUnit test results. Keep the constraints aligned with the lower bounds in pyproject.toml when changing the supported ML versions.

The integration tests create a tiny local Qwen backbone, run SFT and RLCR updates, reload the saved adapter, and check Python/HTTP/official-SDK contracts. The unit tests also use a Qwen2.5 tokenizer, downloaded on first use. Released-weight tests are optional and require JEVANY_TEST_CHECKPOINT. Video tests decode local clips with PyAV, which is included in the multimodal and dev extras, and retain each model processor's frame sampling.

For tests against an existing server:

JEVANY_BASE_URL=http://127.0.0.1:8008 python -m pytest tests/test_api.py -q

Keep JSON request/response compatibility when changing inference. Add labels only to training records and keep them out of model-facing inputs. Data converters should record source revisions and preserve evaluation separation.

The code is organized around user entry points:

Location Responsibility
jevany/client.py, api.py Lightweight Python client and wire schema
jevany/runtime.py, serve.py Shared local inference and HTTP deployment
jevany/training.py, train.py Recipes, Python training entry point and training loop
jevany/datasets/, data.py Bundled starter, public-source builders and JSONL validation
recipes/, infra/ Training configurations and scheduler-neutral launcher
examples/ Small applications using the public interfaces
scripts/, results/ Research/release tools and recorded measurements
docs/ Guides, evaluation records and showcase assets

Build a distributable package with python -m build. Keep generated weights, runs, downloaded data and build outputs outside source control.