# Build tooling Use one launcher from the repo root: ```bash python build/run.py ``` ```text build/ run.py << single entrypoint README.md common/ shared helpers (paths, pyproject, verify) wheel/ SDK .whl (Nuitka + manylinux Docker) release/ local release gate (preflight / audit) gui/ common/ shared PyInstaller driver ory_finger/ ORY-FINGER dashboard ory_mini/ ORY-MINI internal GUI (scaffold) ory_box/ ORY-BOX internal GUI (scaffold) ``` ## Commands ### SDK wheel ```bash python build/run.py wheel-win python build/run.py wheel-manylinux # Single Version python build/run.py wheel # Inside Docker python build/run.py wheel --target pypi-linux --verify ``` Direct module paths (same behavior): ```bash python build/wheel/build.py build\wheel\win.bat .\build\wheel\docker\run.ps1 ``` ### Release gate Local only: never publishes, and makes no network call unless `--check-pypi` is passed. See `docs/publishing.md` for the full flow. ```bash python build/run.py release preflight --version 0.5.2 python build/run.py release preflight --all-wheel-pythons --check-pypi python build/run.py release audit SDK\0.5.2\orisys-0.5.2-cp312-cp312-win_amd64.whl ``` `preflight` runs: repo state → version consistency → duplicate guard (fails only when the version is already released: a local git tag, or PyPI with `--check-pypi`) → pytest → bundle precheck → per-wheel static content/metadata assertions → isolated runtime verification (bundled assets + real frames, no camera). A populated `SDK//` is the expected input, so build first: ```bash python build/run.py wheel-win python build/run.py release preflight --all-wheel-pythons --check-pypi ``` Reports land in `build/release/reports//`. ### GUI ```bash python build/run.py gui finger python build/run.py gui mini # scaffold / NotImplemented python build/run.py gui box # scaffold / NotImplemented ``` ### Verify ```bash python build/run.py verify path\to\orisys.whl python build/run.py verify path\to\orisys.whl --contents --assets --runtime python build/run.py verify --gui-dist --product ory_finger ``` ## Outputs - Wheels: `SDK//`, `dist/repaired/` - Preflight reports: `build/release/reports//` - Finger GUI: `dist/OrisysDashboard/` - Future mini/box: `dist/OryMini/`, `dist/OryBox/` Generated work files under `build/nuitka/`, `build/release/reports/` and `build/pyinstaller_work/` are gitignored.