Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 22, 2025

Note: This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
mlx ==0.21.0==0.30.1 age confidence
mlx-lm ==0.20.3==0.30.2 age confidence
mlx-vlm ==0.1.1==0.3.9 age confidence

Release Notes

ml-explore/mlx (mlx)

v0.30.1

Compare Source

Highlights

  • RDMA over thunderbolt with the JACCL backend (macOS >= 26.2) (some numbers)
  • NAX with JIT so that they can be used in MLX Swift
  • CUDA improvements
    • Many improvements to SDPA (masking, T_q != T_kv)
    • Faster quantize/dequantize
    • QQMM to make use of faster tensor cores
    • Fix in col reduce speeds up training

What's Changed

New Contributors

Full Changelog: ml-explore/mlx@v0.30.0...v0.30.1

v0.30.0

Compare Source

Highlights

  • Support for Neural Accelerators on M5 (macOS >= 26.2)

What's Changed

New Contributors

Full Changelog: ml-explore/mlx@v0.29.0...v0.30.0

v0.29.4

Compare Source

🚀

v0.29.3

Compare Source

⏭️

v0.29.2

Compare Source

⬆️

v0.29.1

Compare Source

🚀

v0.29.0

Compare Source

Highlights

  • Support for mxfp4 quantization (Metal, CPU)
  • More performance improvements, bug fixes, features in CUDA backend
  • mx.distributed supports NCCL back-end for CUDA

What's Changed

New Contributors

Full Changelog: ml-explore/mlx@v0.28.0...v0.29.0

v0.28.0

Compare Source

Highlights

  • First version of fused sdpa vector for CUDA
  • Convolutions in CUDA
  • Speed improvements in CUDA normalization layers, softmax, compiled kernels, overheads and more

What's Changed

New Contributors

Full Changelog: ml-explore/mlx@v0.27.1...v0.28.0

v0.27.1

Compare Source

Highlights

  • Initial PyPi release of the CUDA back-end.
  • CUDA back-end works for well with mlx-lm:
    • Reasonably fast for LLM inference
    • Supports single-machine training and LoRA fine-tuning

What's Changed


Configuration

📅 Schedule: Branch creation - "before 10am on monday" in timezone Europe/Berlin, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@claude
Copy link

claude bot commented Dec 22, 2025

PR Review: MLX Dependencies Upgrade (v0.21.0 → v0.30.1)

Summary

This PR upgrades the core MLX dependencies from quite old versions to the latest releases:

  • mlx: 0.21.0 → 0.30.1 (9 minor versions)
  • mlx-lm: 0.20.3 → 0.30.0 (9 minor versions)
  • mlx-vlm: 0.1.1 → 0.3.9 (significant version jump)

Code Quality & Best Practices ✅

Strengths:

  1. Automated dependency management - Using Renovate for tracking upstream changes is excellent
  2. Fixed versioning in setup.py - Pinning exact versions provides stability
  3. Range-based requirements.txt - Using >= allows flexibility while the exact versions are controlled in setup.py

Potential Concerns:

  1. Large version jump - Jumping 9 minor versions in one go is risky. MLX has had significant changes including:

    • New RDMA over Thunderbolt support (macOS >= 26.2)
    • CUDA improvements (if relevant to future plans)
    • Neural Accelerator support for M5 chips
    • Many API refinements and potential breaking changes
  2. API compatibility risk - The code uses several MLX APIs that may have changed:

    • mlx_lm.generate() with sampler API (invoice_detector.py:461-468)
    • mlx_vlm.generate() return type (GenerationResult handling, invoice_detector.py:632-648)
    • mlx_lm.load() and mlx_vlm.load() signatures (model_manager.py:117-156)

Potential Bugs & Issues ⚠️

Critical:

  1. mlx-lm sampler API change - Around v0.28, mlx-lm changed from temperature parameter to sampler-based generation. Your code already handles this (invoice_detector.py:458-459), which is good, but needs testing.

  2. mlx-vlm GenerationResult API - The code handles the new GenerationResult object (invoice_detector.py:648) but this should be verified with the new version.

Recommended Testing:

  • Test VLM-based invoice detection with the new mlx_vlm.generate() API
  • Test text LLM mode with the new mlx_lm.generate() sampler API
  • Verify model loading still works with both text and vision models
  • Check if any deprecation warnings appear

Performance Considerations 🚀

Positive:

  • MLX 0.30.x includes significant performance improvements:
    • Faster RMS norm for small dimensions
    • 2-pass column reduce for CUDA (if applicable)
    • Faster general copy operations
    • Optimized quantize/dequantize operations
    • QQMM (quantized matrix multiplication) improvements

Expected Impact:

  • Invoice detection and extraction should be noticeably faster
  • Model loading may be more efficient with caching improvements

Security Considerations 🔒

Good:

  1. No direct security vulnerabilities in the dependency changes themselves
  2. MLX 0.30.x includes security fixes:
    • Heap-buffer-overflow fix in RandomBits::eval_cpu (#2877)
    • Proper error handling improvements

Recommendations:

  1. Review the full MLX changelog for any security-related fixes
  2. Ensure HuggingFace authentication still works correctly (no changes needed based on code review)

Test Coverage 📊

Concerns:

  1. No test changes in this PR - A dependency upgrade of this magnitude should include:
    • Regression tests to ensure existing functionality works
    • Tests for any new APIs being used
    • Integration tests for the invoice detection pipeline

Recommendation:
Before merging, run the full test suite:

make test

And specifically test:

  • tests/test_invoice_detector.py - Core VLM/LLM functionality
  • tests/test_model_manager.py - Model loading
  • End-to-end invoice processing with a real PDF

Migration Risks 🚨

Breaking Changes to Watch:

  1. Minimum Python version - MLX 0.30+ bumped minimum Python to 3.9 (already met)
  2. PyPI releases - Now includes CUDA ARM releases (not relevant for Apple Silicon)
  3. API changes - Several ops had signature changes (check if any affect your code)

Recommendations 📝

Before Merging:

  1. Run full test suite - Ensure all tests pass
  2. Manual testing - Test with real invoice PDFs
  3. Check for deprecation warnings - Run with verbose logging
  4. ⚠️ Consider gradual upgrade - If issues arise, consider upgrading in smaller steps (0.21→0.25→0.30)

After Merging:

  1. Monitor for any runtime issues in production
  2. Update documentation if any user-facing behavior changed
  3. Consider adding integration tests for the new MLX versions

Verdict

CONDITIONAL APPROVAL ✅ with testing required

This upgrade brings important performance improvements and bug fixes, but the large version jump requires thorough testing before merging. The code appears well-structured to handle the changes (good job on the sampler API handling!), but verification is essential.

Action Items:

  1. Run make test and ensure all tests pass
  2. Test with sample invoice PDFs using both VLM and text LLM modes
  3. Check logs for any deprecation warnings
  4. If any issues appear, consider incremental upgrade or code adjustments

Review generated following CLAUDE.md guidelines

@renovate renovate bot force-pushed the renovate/mlx-mlx-packages branch from cc363b3 to 86b3663 Compare January 6, 2026 01:12
@renovate renovate bot force-pushed the renovate/mlx-mlx-packages branch from 86b3663 to b30ffaf Compare January 6, 2026 05:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant