datomatic/laravel-carta-del-docente
A Laravel package wrapping Italy's Carta del Docente (Teacher's Card) API. Check card balances, browse authorized merchants and manage purchases from your PHP app through a clean, fluent, framework-native interface built for quick integration.
v1.3.1 is a compatibility release: the only change is Laravel 13 support. There are no new public APIs, no deprecations, and no breaking changes, so the "getting started" path is identical to v1.3.0 — if you are already on the package, this is a drop-in composer update.
composer.json allows the new version (^1.3 or ^1.0 both resolve). If you pinned 1.3.0 exactly, loosen it — otherwise you will not pick up the Laravel 13 compatibility shims.illuminate/support, illuminate/contracts, and friends are actually resolvable at 13.x in your project. Run composer why-not laravel/framework 13.* before assuming the package is the blocker.src/ plus the package's service provider. Look for the provider's register()/boot() and anything it merges, publishes, or binds into the container — that is your surface area.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" --tag=config and diff against what is already in config/. New Laravel majors often change default driver names or HTTP client behaviour, and a stale published config is the most common cause of "it broke on upgrade" reports.php artisan tinker before wiring it into application code. This gives you a baseline you can re-run after the upgrade.Treat the upgrade as two separate validations: the package works on your current Laravel version (regression check), and it works on Laravel 13 (forward check). Only the second is actually new in this release.
Pin to the patch, not the minor, during the transition. While you migrate a codebase to Laravel 13, constrain the package to ^1.3.1 rather than ^1.0. That keeps you on the release that declares framework-13 support and prevents a future 1.2.x resolution on a fresh CI machine.
Test the matrix, not just the happy path. If the package is a dependency in a library you maintain, add Laravel 13 to your CI matrix as a separate job alongside your current version. A single combined job hides which framework version a failure belongs to.
Isolate the integration behind a thin adapter. Wrap the package's calls in a small application-level class (App\Support\...) rather than scattering facade calls through controllers and jobs. When the next major Laravel release forces a package bump, you change one file instead of grepping the codebase. This pays off disproportionately for packages that ship a facade plus a config array.
Feature-detect framework behaviour, not versions. If your code branches on framework behaviour that changed in Laravel 13, prefer capability checks (method_exists, Container::getInstance()->bound(...)) over version_compare(app()->version(), '13.0', '>='). Version sniffing rots badly across patch releases.
Upgrade in a branch with the lockfile committed. Because this release is compatibility-only, the diff should be composer.json (constraint) plus composer.lock and nothing else. If you see application-code changes in that diff, something else moved and you should investigate before merging.
Order your dependency bumps. Laravel 13 support in this package does not mean your other packages support Laravel 13. Bump the framework first, let composer update --with-all-dependencies tell you what fails, and treat this package as one item in that queue rather than the trigger.
composer.json constraint was widened and the suite was run against 13. It does not guarantee every code path was exercised. Skim the test suite for framework-version conditionals and check whether CI actually runs 13 or just permits it.composer conflict that looks like the package's fault. Run composer update --dry-run and read the solver output before assuming an incompatibility.bootstrap/app.php structure, provider registration) rather than the package. Bisect by testing the package against a fresh Laravel 13 app before debugging your own.php artisan config:clear && php artisan cache:clear && php artisan optimize:clear, then re-run. Cached config from a previous framework version is a silent source of confusing errors.--display-deprecations, or set error_reporting(E_ALL) in a dev harness). Framework majors routinely trigger notices inside packages that do not appear in the changelog.vendor/ tells you nothing. Rebuild from a clean composer install on the matrix job you added, or you will ship a false positive.How can I help you explore Laravel packages today?