Improvements
- Build the uv environment on macOS and Linux as well as Windows, from a single lockfile.
uv syncpreviously aborted before resolving a single package on anything but Windows (#41) - Pick the compute device automatically -- CUDA, then Apple MPS, then CPU -- with a
YORU_DEVICEoverride, a--deviceflag on both training scripts, and a selector in the training GUI. Apple Silicon users were silently training and inferring on the CPU before this (#41) - Add CI on Windows, Linux and macOS, and turn the smoke tests into a real train/detect round trip through YORU's own code paths (#41)
- Write runtime errors and work logs to a
~/.yoruuser directory, relocatable withYORU_HOME(#38, #40) - Launch the GUIs asynchronously and surface their errors instead of swallowing them (#32, #36)
- Add
train_ultralytics.py(#33)
Bug Fixes
- Fix the error-handling gaps found reviewing the exception-handling work (#39)
- Bound numpy to
<2: opencv-python 4.10.0.82 is built against the numpy 1.x ABI, and an unbounded numpy brokeimport cv2on Python 3.10+ (#41) - Tell hatchling that the package directory is
yoru, which it could not infer from the distribution nameyoru_uv(#41) - Stop the vendored YOLOv5 from gating MPS on the deprecated
torch.has_mps(#41)
Documentation
- Document what the installer cannot install: a Chromium browser for the launcher, the NVIDIA driver (the CUDA toolkit is not required -- the PyTorch wheels carry their own runtime), and the Apple Silicon toolchain and macOS permission prompts (#41)
- Give the uv route its own instructions, including how to install uv itself (#41)
- Fix typos and broken links in the docs (#37)
Platform support
macOS is supported for the first time: macOS 14 (Sonoma) or later on Apple Silicon. Windows and Linux resolve exactly as before (torch 2.6.0+cu124, torchvision 0.21.0+cu124).
Full Changelog: v1.1.1...v1.1.2