Skip to content

chore: upgrade to Laravel 13 - #92

Merged
tomasvanrijsse merged 3 commits into
mainfrom
chore/laravel-13
Nov 7, 2026
Merged

tomasvanrijsse merged 3 commits into
mainfrom
chore/laravel-13

Conversation

@claude-for-timatic

@claude-for-timatic claude-for-timatic Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Closes #31

Upgrades to Laravel 13.40, following Boost's /upgrade-laravel-v13 guide.

Changes

  • Dependencies: laravel/framework ^13.40, laravel/tinker ^3, brick/math ^0.14.2, fedeisas/laravel-mail-css-inliner ^6, spatie/laravel-json-api-paginate ^2, Pest 4 / PHPUnit 12. The update also bumps Symfony to 8.1 / http-foundation 7.4.23, which fixes 7 of the 13 advisories in the current lock.
  • Advisories: the PKSA IDs Composer listed only affect 13.x releases before 13.30. 13.40.0 and our 12.69.3 aren't affected (checked against the Packagist advisory API). The real blocker was the Pest 3 plugin.
  • CSRF: the webhook routes now exclude PreventRequestForgery. The ValidateCsrfToken alias doesn't match Laravel 13's web group, so GitHub and Bitbucket webhooks got a 419 (caught by CsrfProtectionTest).
  • PHPUnit 12: /** @test */ is ignored, so the 9 DateFilterTest/TextFilterTest tests were silently skipped. They now use #[Test].
  • PHPStan: fixed the 6 errors caused by Laravel 13's narrower return types (Collection::max(), option(), nullable $this->command in seeders).
  • brick/math: RoundingMode::HALF_UP becomes RoundingMode::HalfUp. The old constant is deprecated but behaves the same.

Kept and follow-up

Verification

  • Full Pest suite in Docker: 0 failed, 2288 assertions (baseline 2282 plus the 9 tests that run again)
  • PHPStan: 0 errors
  • Pint: clean
  • composer docs:api: the only diffs in public/api.json are the local server URL and the order of the two auth error responses, so the API is unchanged

Claude

Bumps laravel/framework to 13.40, laravel/tinker to 3, brick/math to
0.14, fedeisas/laravel-mail-css-inliner to 6 and
spatie/laravel-json-api-paginate to 2 (drops the removed base_url
option). The Packagist advisories Composer listed affect 13.x releases
before 13.30, not 13.40.

- Exclude PreventRequestForgery instead of ValidateCsrfToken on the
  webhook routes; the alias no longer matches the web group's middleware,
  so webhooks got a 419.
- Use #[Test] attributes, as PHPUnit 12 ignores /** @test */ and
  silently skipped the filter tests.
- Fix the PHPStan errors from Laravel 13's narrower return types.

Refs #31

Claude
brick/math 0.14 deprecates the upper snake case constants.

Claude
Patch releases of livewire/livewire (4.4.8) and symfony/filesystem,
html-sanitizer and yaml (8.1.11); composer audit now reports none.

Claude
@tomasvanrijsse
tomasvanrijsse merged commit ff8fb0a into main Nov 7, 2026
3 checks passed
@tomasvanrijsse
tomasvanrijsse deleted the chore/laravel-13 branch November 7, 2026 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade timatic-backend to Laravel 13

1 participant