Skip to content

Releases: ultralytics/autoimport

v0.0.4 - Add SBOM to publish.yml (#25)

30 Aug 16:34
f6540f5

Choose a tag to compare

🌟 Summary

v0.0.4 adds automated SBOM generation to releases, hardens CI notifications, and improves contributor workflowsβ€”enhancing security, reliability, and developer experience. πŸ”βš™οΈ

πŸ“Š Key Changes

  • SBOM on release: CI now generates and uploads an SPDX JSON SBOM using the Anchore SBOM Action, attaching it to each release build. πŸ“¦
    • Uses setup-uv to create an isolated sbom-env and scans the installed package.
  • CI notification hardening: Escapes quotes in PR titles to avoid shell/JSON parsing issues during notifications. πŸ”§
  • Workflow improvements: format.yml gains explicit permissions and smarter automation via Ultralytics Actions (AI labeling, Ruff/docformatter formatting, codespell, optional PR summaries). πŸ€–
  • Documentation polish: README and tests README updated for clarity, links, and developer guidance. πŸ“
  • Version bump: Package updated to 0.0.4. πŸ”–

Helpful references:

🎯 Purpose & Impact

  • Stronger supply chain security: SBOM provides full dependency transparency for each release, aiding audits and trust. πŸ”’
  • More reliable CI: Safer notifications reduce flaky failures caused by special characters in PR titles. βœ…
  • Better contributor experience: Automated labeling, formatting, and checks streamline reviews and keep code quality high. πŸš€
  • Clearer docs: Easier onboarding and testing for new users and contributors. πŸ“š

Upgrade with:
pip install --upgrade ultralytics-autoimport

What's Changed

Full Changelog: v0.0.3...v0.0.4

v0.0.3 - `v0.0.3` Return correct Type and Repr after first use (#21)

17 Jan 13:28
2b0da2f

Choose a tag to compare

🌟 Summary

The v0.0.3 release upgrades the autoimport package, focusing on improving the functionality and clarity of LazyLoader, simplifying logic, enhancing testing, and ensuring better compatibility for dynamic module imports. πŸš€

πŸ“Š Key Changes

  • πŸ› οΈ Improved LazyLoader Functionality

    • Critical module attributes (__file__, __path__, etc.) are now copied for better compatibility with external tools.
    • Enhanced __repr__() for clearer representation when modules are not loaded.
    • Fixed and simplified logic to correctly handle nested imports and return parent modules when needed.
  • 🎯 Testing Enhancements

    • Tests updated to ensure smoother and more accurate integration of LazyLoader with standard imports.
    • Test documentation expanded, supporting both pytest (recommended) and unittest testing frameworks.
  • πŸ“ˆ Simplicity and Readability

    • Refactored lazy import logic for efficiency and cleaner code, reducing redundancy.
    • Comments reordered and clarified to improve code readability.
  • πŸ”– Version Update

    • Package version incremented from v0.0.2 to v0.0.3.

🎯 Purpose & Impact

  • Better Compatibility βš™οΈ: The updates ensure LazyLoader integrates seamlessly with libraries and tools that rely on module metadata, reducing potential compatibility issues.
  • Smoother Debugging πŸ›: Enhanced representations of unloaded modules help developers diagnose and resolve issues more effectively.
  • Simpler Code Base πŸ€“: The refactored and clarified code makes it easier for contributors to understand and maintain.
  • Improved Dev Experience πŸ§ͺ: Flexible testing guidance with enhanced documentation empowers developers to validate LazyLoader functionality using their preferred tools.

This release ensures greater stability, usability, and clarityβ€”valuable for any developer working with on-demand, performance-optimized imports in Python. πŸš€

What's Changed

Full Changelog: v0.0.2...v0.0.3

v0.0.2 - Fix subpackage imports and handle duplicate imports (#17)

17 Jan 00:04
e8210b8

Choose a tag to compare

🌟 Summary

Version v0.0.2 introduces enhanced functionality for deferred imports with major bug fixes, code improvements, and expanded test coverage to ensure better reliability and clarity. 🐍⚑


πŸ“Š Key Changes

  • 🌟 Subpackage and Duplicate Import Support: Subpackage imports are now supported seamlessly, and duplicate imports are handled without errorsβ€”eliminating potential edge case issues.
  • πŸ“– Updated Documentation: Improved README.md to clearly explain how deferred imports work, focusing on showcasing realistic performance benefits.
  • πŸ§ͺ Expanded Test Suite: Added tests to cover submodule imports, multiple imports, and more scenarios, ensuring thorough validation of the lazy-loading logic.
  • πŸ›  Refactored Code: General cleanup, including relocating and removing unused imports, simplifying methods, and improving the overall maintainability of the code.

🎯 Purpose & Impact

  • πŸ•’ Streamlined Import Handling: Managing subpackages and duplicate imports now reduces potential errors and enhances compatibility in complex scenarios. This allows for smoother integration when working with libraries like torch, numpy, and others.
  • πŸ’‘ Developer-Friendly Documentation: The updated README provides clearer and more practical examples, lowering the learning curve for new users and demonstrating the tangible benefits of lazy imports.
  • πŸ§ͺ Increased Test Confidence: A more robust and expansive test suite identifies edge cases, enhancing the reliability of the library under different usage patterns.
  • πŸ”§ Code Clarity: Refactoring makes the codebase cleaner and easier to maintain, fostering long-term scalability and readability for contributors.

🌟 With this release, developers can enjoy a more powerful, reliable, and developer-friendly library for managing deferred imports efficiently. πŸš€

What's Changed

New Contributors

  • @Y-T-G made their first contribution in #17

Full Changelog: v0.0.1...v0.0.2

v0.0.1 - Add downloads badge (#10)

16 Jan 16:28
e1446dc

Choose a tag to compare

🌟 Summary

This is the inaugural release of the software, marking the foundation of the project! πŸŽ‰

πŸ“Š Key Changes

  • Introduced the initial version of the project, setting up its core features and functionality. πŸ› οΈ
  • Laid the groundwork for future development and updates. πŸš€

🎯 Purpose & Impact

  • Purpose: Establish a starting point for the project, providing users and developers with a functional base to build upon.
  • Impact: Users can now begin exploring the initial iteration of the tool, giving feedback and contributing to its growth. This release is pivotal for shaping the roadmap ahead. 🌟

Stay tuned for more updates as the project evolves! πŸ‘€

What's Changed

New Contributors

Full Changelog: https://github.com/ultralytics/autoimport/commits/v0.0.1