signifly/laravel-shopify
Signifly's Laravel Shopify package helps you build Shopify apps in Laravel with convenient API access, OAuth authentication, webhook handling, and billing support. It simplifies common store integration workflows, letting you focus on your app's features while keeping Shopify interactions organized...
This is a patch release (v1.2.9) whose only stated change is "Prepare for Laravel 12". Treat it as a compatibility release, not a feature release. There is no prior assessment to diff against, so start by confirming what the bump actually changed rather than assuming.
Minimal steps:
composer diff (or compare tags on the repo) and look specifically at composer.json. The meaningful question is whether the illuminate/* / laravel/framework constraint now permits ^12.0, and whether the minimum PHP constraint moved to >=8.2 (Laravel 12's floor).$this->app->version(), that's your signal the package had to paper over a framework API change.composer require with the new tag), run your test suite, and only then attempt a Laravel 12 skeleton. Shipping straight to 12 conflates two failure sources.If the changelog is genuinely a one-liner, the fastest signal is the CI matrix in the repo — a row for Laravel 12 tells you the maintainer actually tests it; its absence tells you the constraint was merely widened.
Pin the framework, not the package. The recurring risk with "prepare for Laravel N" patches is that the composer constraint is loosened before the test matrix catches up. In application code:
"require": {
"php": "^8.2",
"laravel/framework": "^12.0",
"vendor/package": "^1.2.9"
}
Constrain the framework explicitly so a transitive upgrade can't silently drag you onto 12 mid-sprint.
Verify compatibility in a throwaway branch, not in main. Because this release may only touch metadata, the practical workflow is:
git checkout -b chore/laravel-12-dryrun
composer update vendor/package --with-all-dependencies
php artisan about # confirms framework + package boot together
php artisan test
Watch the container bindings. Packages that "prepare for" a new major often shift from singleton to scoped bindings, or from register() to boot() wiring, to align with newer framework lifecycle expectations. If you resolve the package's services in a queued job or an Octane worker, a binding-scope change is the most likely thing to bite you — re-verify state isolation if you run under Octane.
Use the upgrade as a forcing function for your own test coverage. If your suite doesn't exercise the package's public surface, this is the moment to add a smoke test around its primary entry point. A compatibility release with no behaviour change should be provable as a no-op by your own tests, which gives you a clean baseline for the next major.
Check the deprecation channel. Laravel 12 preparation frequently means silencing deprecations in the package and surfacing new ones. Run with APP_DEBUG=true and a strict error handler in staging; PHP 8.4 deprecations (implicit nullable types are the usual offender) surface here and are cheap to fix now, expensive after 13.
composer why laravel/framework and composer show vendor/package to confirm the actual resolved pair, not the declared one.bootstrap/providers.php and inspecting php artisan about or php artisan package:discover -v.config/*.php, an already-published config file in your app will not be updated. Diff the package's shipped config against yours (php artisan vendor:publish --tag=<tag> --force into a scratch directory to compare) — removed keys silently fall back to defaults, added keys are silently absent.Macroable registration. Compatibility releases often tighten visibility or add final/return types, which breaks subclasses in userland without any runtime error until the method is called.How can I help you explore Laravel packages today?