open-southeners/laravel-scout-advaced-meilisearch
An advanced Meilisearch driver for Laravel Scout, adding richer indexing, filtering, sorting, and search features on top of Scout's familiar model-based API. Drop it in to get more control over Meilisearch without rewriting your search layer.
This is the first assessment for this package, and the only signal available is the 5.2.0 release note: Laravel 13 support was added. Treat everything below as a framework for evaluating the package rather than a description of a verified API surface.
Start here, in order:
composer.json and check the illuminate/* constraint. A minor release (5.2.0) adding Laravel 13 support usually means the constraint was widened (e.g. ^12.0|^13.0) rather than a new branch being cut. If 5.1.x still pins to Laravel 12 only, you have a clean upgrade boundary; if 5.2.0 widened the range, downgrading is also safe.*ServiceProvider to see what is registered: bindings, singletons, config merges, publishable assets, console commands, migrations. This tells you more about day-to-day usage than the README in most Laravel packages.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" — inspect the resulting config before changing anything. Defaults are usually tuned for the common case.First use case: upgrade a single non-critical app to Laravel 13 + this package at ^5.2, run the existing test suite, and confirm the package's own tests pass against your app's framework version. That is the fastest way to validate the release note's claim.
Pin deliberately during rollout. For the upgrade window, constrain to "vendor/package": "^5.2" and commit composer.lock. Because 5.2.0 is a minor bump, patch releases within 5.2.x should be safe to absorb automatically — but only after your CI matrix is green.
Test the matrix, not just your app. If you maintain multiple Laravel apps or a package of your own that depends on this one, add laravel/framework: ^12.0 and ^13.0 to your CI matrix. A minor release that widens a constraint is exactly the kind of change that breaks consumers who never tested the new combination.
Resolve through the container, not the facade, in tests. Laravel packages that register bindings are easiest to fake by swapping the binding in a test service provider ($this->app->instance(Contract::class, $fake)) rather than mocking a facade. If the package exposes a facade, prefer Facade::shouldReceive() only for thin integration tests.
Keep configuration in config/. Publish the config once and treat it as application code. Where the package merges defaults (mergeConfigFrom), any key you omit falls back silently — explicit is better, especially for anything that affects queueing, caching, or external HTTP calls.
Wire it into the framework's lifecycle explicitly. If the package ships listeners, scheduled tasks, or jobs, register them in your app's bootstrap/app.php / scheduler rather than relying on package-side auto-registration. This keeps the integration visible in code review and survives package refactors.
Version-gate your own code if you support both majors. During a staggered upgrade, version_compare($app->version(), '13.0', '>=') (or a Composer conflict rule) is often cleaner than maintaining two branches.
composer why-not php when the install misbehaves.php artisan package:discover and php artisan config:clear after changing the package version; stale bootstrap/cache/packages.php is the usual cause of "class not found" after a composer update.vendor:publish --force overwrites your config. Diff before forcing — published configs drift from package defaults between minor versions, and silent overwrites are a classic post-upgrade incident.php artisan about shows discovered providers, and composer why vendor/package shows which constraint pulled the version in.@deprecated annotations now so the next major isn't a surprise.5.2.1 shortly after a framework major, fixing edge cases the initial compatibility bump missed. Hold production rollout a week or pin to the newest 5.2.x patch.How can I help you explore Laravel packages today?