pip install -e ".[dev]"python scripts/verify.py
python scripts/verify.py --fix # apply whitespace/import fixes firstverify.py runs autopep8, isort, black, mypy, pylint, bandit, pip-audit, and pytest.
pytest
pytest -m unit
pytest -n auto # parallel (requires pytest-xdist)Minimum coverage threshold is 90%, configured in .coveragerc.
- Update
versioninpyproject.toml - Run
python scripts/verify.py - Commit and push to
main
When the version in pyproject.toml changes on main, CI automatically builds wheels, the Windows executable, creates a GitHub Release tagged v<version>, and publishes to PyPI. Pull requests and pushes that do not change the version run quality checks only.
The Windows executable is built with PyInstaller using SubtitleTools.spec and scripts/pyi_build.py. CI installs the CPU-only PyTorch wheel before packaging to avoid CUDA-related bundling noise.
src/subtitletools/— package sourcetests/— pytest suitescripts/— verify and PyInstaller helpersSubtitleTools.spec— PyInstaller specification