Contributing
September 18, 2026 ยท View on GitHub
Use Python 3.11+ and an isolated virtual environment.
python -m pip install -e ".[android,dev]"
ruff check .
ruff format --check .
mypy
pytest --cov=jevdroid --cov-report=term-missing
python -m build
Tests are offline and must never require a real device, API key, or paid call.
Use HTTPX mock transports for provider contracts and fake Device/Provider
implementations for the loop. Add regression tests for execution boundaries and
budget changes. Keep public types explicit and provider-specific wire formats
inside providers/.
For manual device testing, use your own unlocked, authorized device. Include the OS, Python version, device model, and measurement boundary in bug reports. Remove API keys, device identifiers, UI text, and account data before sharing artifacts.
Keep pull requests focused. Describe observable behavior, validation, and any protocol compatibility limits. Do not claim performance gains without measured before/after evidence under the same conditions.