Skip to content

Releases: Thavarshan/filterable

v2.0.1

14 May 05:03
Compare
Choose a tag to compare

Added

  • Focuses on the new tests added to verify the fix and prevent regression
  • Emphasizes that this improves the test coverage for edge cases

Changed

  • Highlights the improvements to error handling and resilience
  • Frames the changes as positive enhancements to the existing code
  • Uses professional, descriptive language without being too technical

Fixed

  • Clearly identifies the specific issue that was fixed
  • References the GitHub issue number for traceability
  • Includes the exact error message for users who might be searching for a solution

Full Changelog: 2.0.0...2.0.1

v2.0.0

13 May 19:10
Compare
Choose a tag to compare

Added

  • Added support for Laravel 12.x
  • Added feature flag system for more granular control over filter capabilities
  • Added comprehensive test suite with 100+ tests for all traits
  • Added HandlesUserScope trait for easily filtering by authenticated user
  • Added HandlesRateLimiting trait to prevent abuse via complex queries
  • Added ValidatesFilterInput trait for input validation
  • Added MonitorsPerformance trait for tracking and analyzing filter performance
  • Added TransformsFilterValues trait for transforming input values
  • Added SupportsFilterChaining trait for fluent API method chaining
  • Added InteractsWithLogging trait for improved debugging and auditing
  • Added OptimizesQueries trait for better query performance
  • Added ManagesMemory trait for handling large datasets efficiently
  • Added support for custom pre-filters via the HandlesPreFilters trait
  • Added new artisan command (make:filter) with support for model-specific filters

Changed

  • Major architecture overhaul with modular trait-based design
  • Improved SmartCaching with better cache key generation
  • Updated all Cache interactions to use Carbon instances for TTL values
  • Enhanced Filter base class with more robust constructor injection
  • Standardized return types across all methods for better type safety
  • Updated documentation with comprehensive examples for all features
  • Improved error handling with more descriptive exceptions
  • Modernized test cases to use latest PHPUnit assertions
  • Switched to feature-based activation rather than global static methods

Fixed

  • Fixed cache key generation for array values
  • Fixed memory leaks when dealing with large datasets
  • Fixed issues with query builder method chaining
  • Fixed inconsistent behavior with filter application
  • Fixed validation errors not being properly propagated
  • Fixed user scoping not being applied correctly in some scenarios
  • Fixed rate limiting bypass techniques
  • Fixed performance monitoring accuracy
  • Fixed logging inconsistencies when features are toggled

v1.2.0

25 Feb 06:31
Compare
Choose a tag to compare

Added

  • Support for Laravel ^12

v1.1.7

23 Feb 14:16
Compare
Choose a tag to compare

Added

  • Introduced the FilterableServiceProvider to register the MakeFilterCommand.
  • Added a new Filterable interface to define the contract for the Filterable trait.
  • Added a new Filter interface to define the contract for the Filter class.

Changed

  • Added type hints for method parameters and return types to improve code clarity and type safety.
  • Improved the Filterable trait to ensure compatibility with PHP 8.4.
  • Enhanced the Filter class with better type hinting and method documentation.
  • Updated the FilterableTest to include the necessary setup for bootstrapping the Laravel application.

Fixed

  • Fixed an issue where the config class was not available during tests by bootstrapping the Laravel application in the test setup.
  • Corrected the test case to ensure the apply method is called correctly in the filter_throws_exception_when_filter_application_fails test.

v1.1.6

25 Sep 10:26
Compare
Choose a tag to compare

Changed

  • Extend compatibility to PHP 8.3

Fixed

  • Laravel 9 compatibility issues

v1.1.5

24 Sep 20:58
Compare
Choose a tag to compare
  • Minor dependency updates for security

v1.1.4

25 Aug 21:53
Compare
Choose a tag to compare

Changed

  • Minor dependency updates for security

v1.1.3

14 Jul 01:37
Compare
Choose a tag to compare

Changed

  • Updated dependencies

v1.1.2

16 May 16:09
c1e4c21
Compare
Choose a tag to compare

Changed

  • Modified the buildCacheKey method to sort and normalise filterables before generating the cache key. This change reduces the number of unique keys and helps mitigate cache pollution issues. (See PR #18)
    Caching has now been changed to be disabled by default. This change provides more control over when caching is used, helping to prevent unnecessary cache pollution.

Fixed

  • Fixed cache pollution issues caused by the generation of too many unique keys. This was achieved by limiting the number of unique filter combinations that can be cached. (See issue #17 and PR #18)

v1.1.1

01 May 21:27
f8937e8
Compare
Choose a tag to compare

Added

  • Compatibility support for newer PHP versions: Updated brick/math requirement from PHP ^8.0 to ^8.1 to embrace the latest PHP features and improvements.

Changed

  • Updated brick/math from 0.11.0 to 0.12.1: Includes performance optimizations and bug fixes to enhance mathematical operations.
  • Updated laravel/framework from v10.48.5 to v10.48.10: Rolled in new minor features and improvements to the Laravel framework that benefit the stability and security of applications using filterable.
  • Updated symfony/console from v6.4.6 to v6.4.7: Enhanced compatibility with other Symfony components, improving integration and usage within Symfony-based projects.
  • Updated development dependencies:
    • phpunit/phpunit from ^9.0 to ^10.1 for advanced unit testing capabilities.
    • vimeo/psalm from 5.0.0 to 5.16.0 for improved static analysis and code quality checks.

Fixed

  • Security patches and minor bugs: All updated dependencies include patches for known vulnerabilities and fixes for various minor bugs, enhancing the security and reliability of the filterable package.