# Development The initial supported interpreter is CPython 3.14 on Windows and Linux. Windows and Linux have separate qualification checks. Other Python versions are not qualified. Experimental CUDA has a separate Windows hardware qualification; Linux import/compiler checks do not establish real-device parity. See the [CUDA guide](../user_guide/cuda.md). Install Poetry 2.5.1 in a separate tool environment, then use it for all project commands. Keep Poetry separate from the project environment. ```powershell python -m venv .tools/poetry .tools/poetry/Scripts/python -m pip install poetry==2.5.1 .tools/poetry/Scripts/poetry env use python .tools/poetry/Scripts/poetry sync --with docs --extras cpu --extras cuda --extras enron .tools/poetry/Scripts/poetry run python tools/quality.py .tools/poetry/Scripts/poetry build ``` On Linux the tool executable is `.tools/poetry/bin/poetry`. `poetry.toml` selects the project `.venv`; `poetry.lock` pins development tools. Production currently has no runtime dependencies. Black formats owned Python; ty checks package, tests and tooling; pytest unit tests run under Coverage.py. Both statement and combined line/branch coverage must meet 95%. Unit coverage includes development tools, documentation configuration and unimported source, with no exclusion of untested product modules. `uv_build>=0.13.6,<0.14` builds wheel and sdist. Only `src/pipewhy` belongs in the wheel; tests and development tools stay in the repository. Package metadata retains proprietary rights. Version 0.1.0.dev0 is published as a development prerelease; source access and redistribution rights remain separate. Subsequent releases require their own version and release checks. See [contributor requirements](https://github.com/oakplume/pipewhy/blob/main/CONTRIBUTING.md) for the mandatory completion policy and the [issue tracker](https://github.com/oakplume/pipewhy/issues) for delivery status.