Skip to content

feat!: move to Laravel 12 and core-api 2.0 - #425

Merged
roncodes merged 8 commits into
release/v0.7.0from
chore/laravel-12
Nov 6, 2026
Merged

roncodes merged 8 commits into
release/v0.7.0from
chore/laravel-12

Conversation

@roncodes

@roncodes roncodes commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

Moves the server package to Laravel 12 for the next minor release, v0.7.0, into release/v0.7.0. It goes with fleetbase/fleetbase release/v0.8.0.

What changed

  • fleetbase/core-api ^2.0, replacing the old range.
  • illuminate/* and laravel/framework ^12.69, PHP ^8.2, plus the dependency majors that go with core-api 2.0 where this package uses them: fcm ^5.1, apn ^5.5, twilio channel ^4.1, milon/barcode ^13, geocoder-laravel ^13, cknow/laravel-money ^8, Sanctum ^4.
  • Dev: Pest ^3 (PHPUnit 11), Testbench ^10, collision ^8, var-dumper ^7, PHPStan ^2 / Larastan ^3 where used.
  • No security advisory exceptions. composer audit on this branch reports no advisories, and there is no policy.advisories or audit.ignore. The one remaining audit note is the abandoned hammerstone/fast-paginate, which core-api requires.
  • new Grammar() now takes a connection: UtilsContractsTest, TrackingNumberTraitContractsTest and ModelAccessorContractsTest pass an in-memory SQLite connection.
  • Notification and observer tests expect TypeError from toFcm(null) (fcm channel 5 types its argument), in 8 files.
  • Filesystem fakes gain path(), putFile() and putFileAs() (place import, order photo capture, customer helper tests).
  • scripts/pest-bootstrap.php sets the ISO currency list for cknow/laravel-money 8 and adds fleetopsTestConnectionResolver(), because Laravel 12's loadMissing() always builds a query. OrderCancelReasonTest, CommandContractsTest, TelematicControllerContractsTest and EventContractsTest use it.
  • Removes the CI step that ignored the illuminate/mail advisory.

Prep work merged in

The branch head is the complete Laravel 12 state, ready to link locally.

Depends on, in merge order

  1. feat!: move to Laravel 12 and Sanctum 4 core-api#333, tagged v2.0.0
  2. This PR, then the release PR release/v0.7.0 → main.

CI stays red until those are tagged, because Composer can't resolve fleetbase/core-api ^2.0 from Packagist yet. The fork packages core-api needs are released: laravel-mysql-spatial 2.0.0, twilio 6.0.0 and countries 0.9.0.

Tested locally

Against core-api#333 (feat/laravel-12) through a Composer path repository, on PHP 8.2 and Laravel 12.71.

  • All 518 test files pass, each in its own process the way the coverage runner runs them, and the coverage gate is met at 100% (45,091/45,091 lines, 5,684/5,684 methods).
  • composer audit: no advisories.

Not run

  • Nothing against live Stripe, Twilio, Firebase/FCM, APNs or other third-party APIs. Package majors used at runtime but not exercised live: twilio channel, barcode, geocoder, money.
  • No MySQL migration run here; the tests use SQLite.
  • Not tested on Laravel 13, although core-api allows it.

Do not merge before core-api v2.0.0 is tagged.

Pins every diffIn* call as an explicit absolute or signed integer so results read the same on Carbon 2 and 3. Carbon 2 values are unchanged; tests pin direction and type at the priority sites.
Restate nullable on ->change() calls, which Laravel 11+ no longer preserves.
Replace unsignedDecimal with decimal()->unsigned(), set DOUBLE(12,2) on routes in
SQL since Blueprint::double() drops total and places, and check indexes through
TableIndexes. Fresh MySQL schema is unchanged on Laravel 10.
Bumps the Laravel 12 dependency set and fixes the test fakes the new
contracts break: Filesystem fakes, array() stubs, Grammar constructor,
cknow/laravel-money currency config, Firebase client errors and
loadMissing() needing a connection.
@roncodes roncodes mentioned this pull request Nov 6, 2026
@roncodes
roncodes merged commit 1ba61c3 into release/v0.7.0 Nov 6, 2026
4 of 6 checks passed
@roncodes
roncodes deleted the chore/laravel-12 branch November 6, 2026 04:31
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.

1 participant