New Release: Ultralytics v8.3.221

:rocket: Ultralytics v8.3.221 — Cleaner codebase, tighter CI, same great results

TL;DR: v8.3.221 delivers a large Ruff-driven refactor with modern typing, import cleanup, and polished logging/formatting, plus stricter docs CI, improved exception logging, corrected ExecuTorch docs links, and more reliable tests. No API or model behavior changes—YOLO11 performance and results remain consistent. See the full details in the v8.3.221 release notes.

:glowing_star: Highlights

  • Codebase-wide Ruff refactor modernizes type hints, imports, and formatting with minimal behavioral change.
  • Docs CI is stricter to catch issues earlier, improving contribution quality.
  • Exception logging is cleaner and more consistent across code and docs.
  • Tests use pytest’s tmp_path for better isolation and parallel stability.
  • YOLO11 remains the recommended model for all use cases; no changes required on your side.

:puzzle_piece: New Features

  • This is a developer-focused quality release with no new user-facing features or API changes. Your workflows with YOLO continue to work as before.

:wrench: Improvements

  • Refactor and quality polish:
    • Modern type hints using PEP 604 unions (Path | None, dict | None).
    • Cleanup of unused variables, fewer # noqa, standardized imports, and safer disk-usage variables.
    • More Pythonic constructs (iterable unpacking, next(...) for first matches, clearer f-strings with !s, !r).
    • Consistent rounding in image padding/letterbox flows via round(...) for slightly more consistent behavior.
    • Reordered __all__ exports and subtle logging/output polish.
  • Docs and CI:
    • Stricter Ruff rules enabled in docs workflows to catch undefined names and unused imports earlier.
    • Exception logging standardized from str(e) to f"{e}" for cleaner messages.
    • ExecuTorch docs link updated to the correct backend setup page.
  • Testing reliability:
    • Test suite now uses pytest’s tmp_path to improve isolation and stability in parallel runs.

:bug: Bug Fixes

  • Corrected ExecuTorch documentation link to reduce setup confusion.
  • Unified exception logging patterns for more readable and consistent error messages.

:white_check_mark: What’s Changed (PRs and Authors)

Explore every change in the full changelog from v8.3.220 to v8.3.221, and read more in the v8.3.221 release notes.

:bullseye: Purpose & Impact

  • Developer experience:
    • Cleaner, more consistent code and typing for better IDE assistance, readability, and maintenance.
    • Stricter CI linting leads to faster feedback and higher-quality contributions.
  • User experience:
    • No model or API changes; YOLO11 and other models perform and behave as before.
    • Slightly more consistent image padding behavior; impact is negligible.
  • Reliability and docs:
    • Corrected ExecuTorch links and better test isolation improve confidence in releases.

:package: Upgrade

  • No action required for users. If you want the latest improvements:
    pip install -U ultralytics
    
  • Quick check with YOLO11:
    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    results = model.predict("image.jpg")
    

:speech_balloon: Feedback

We’d love your feedback on this release—particularly on the stricter docs CI and the updated exception/logging patterns. Share your thoughts and suggestions so we can keep improving together.

Thanks to our amazing community and contributors for making this possible. Your input keeps YOLO moving forward!