Skip to content

chore: maak het pakket aantoonbaar Laravel 13 proof - #66

Merged
MitchBred merged 2 commits into
mainfrom
chore/laravel-13-proof
Aug 6, 2026
Merged

chore: maak het pakket aantoonbaar Laravel 13 proof#66
MitchBred merged 2 commits into
mainfrom
chore/laravel-13-proof

Conversation

@MitchBred

Copy link
Copy Markdown
Owner

Vervolg op #65. Die haalde de brick/math pin weg zodat entrust naast Laravel 13 te installeren is. Bij het controleren of het er daarna ook echt op draait bleek dat niet vast te stellen, want de CI verifieerde niets. Deze PR maakt dat wel aantoonbaar.

Wat er mis was

De CI verifieerde niets. De workflow triggerde op master terwijl de default branch main heet, en de teststap stond uitgecommentarieerd:

on:
  push:
    branches: [ master ]

    # - name: Run test suite
    #   run: composer run-script test

Een groene build betekende dus alleen dat composer validate en composer install slaagden. Er was ook geen test-script om aan te roepen.

Alles resolveerde naar dev-branches. minimum-stability: dev met prefer-stable: false leverde illuminate/support 13.x-dev, phpunit 12.5.x-dev en mockery 2.0.x-dev op. Die laatste is niet stable uitgebracht en gaf in zijn eentje 44 deprecations. Hetzelfde gold voor rector/rector: dev-main.

De require-lijst was een platgeslagen dependency-tree. 47 pakketten waarvan er 39 transitief zijn: psr/*, symfony/polyfill-*, symfony/cache, symfony/options-resolver, voku/portable-ascii, nesbot/carbon, nunomaduro/termwind en zo verder. Daar kwam de brick/math pin vandaan. Dat is geen incident: zolang die lijst er staat komt er bij Laravel 14 gewoon een nieuwe blocker in.

illuminate/* ^13.0 dwong Laravel 13 af. Sinds 2.5.8 kon je entrust niet meer op Laravel 12 installeren, wat een upgrade van een afnemer tot een alles-tegelijk-operatie maakt.

Wat er nu staat

De require is teruggebracht tot de acht illuminate-pakketten die de source daadwerkelijk aanraakt, opgezocht via de use-statements in src/:

Pakket Waarvoor
illuminate/cache TaggableStore
illuminate/console Command in de migration-generator
illuminate/contracts Auth\Guard
illuminate/database Model, Migration, Blueprint, BelongsToMany
illuminate/filesystem wegschrijven van de gegenereerde migratie
illuminate/http Request in de middleware
illuminate/support Blade, Cache, Config, Response, Facade, ServiceProvider, Str
illuminate/view de entrust::generators.migration namespace

Alle acht op ^12.0|^13.0. Verder minimum-stability: stable met prefer-stable: true, mockery ^1.6 en rector ^2.0, en een test- plus lint-script.

De workflow draait nu op main met een matrix over beide Laravel-versies, pint die per job met composer require --no-update en draait daarna echt de tests.

Eén regel testcode mee: makeFilterName() had array $permissions = null zonder vraagteken, goed voor de laatste overgebleven deprecation.

Getest

Lokaal op PHP 8.4.22, beide takken van de matrix:

Laravel v12.65.0 Laravel v13.24.0
phpunit OK, 46 tests, 95 assertions OK, 46 tests, 95 assertions
deprecations 0 0, was 44
phplint OK, 17 files OK, 17 files
composer validate --strict valid valid

Ook gecontroleerd aan de afnemerskant: parnassys-schoolkassa-backend resolveert met deze versie zowel op laravel/framework v12.65.0 als op v13.24.0.

Gerebased op de huidige main, dus de dependabot-bumps van actions/checkout@v7 en actions/cache@v6 blijven staan.

Na merge is er nog steeds een tag 2.5.9 nodig. main is inmiddels wel voorbij tag 2.5.8 gelopen, maar zonder tag ziet Packagist geen van deze wijzigingen.

🤖 Generated with Claude Code

MitchBred and others added 2 commits August 6, 2026 14:00
Het weghalen van de brick/math pin maakte entrust installeerbaar naast
Laravel 13, maar niemand kon zien of het er ook op werkte. Deze commit
regelt dat.

CI verifieerde niets. De workflow triggerde op master terwijl de
default branch main heet, en de teststap stond uitgecommentarieerd.
Wat er draaide was composer validate plus een install. Nu draait hij op
main, met een matrix over Laravel 12 en 13, en roept hij het test-script
aan dat er nog niet was.

minimum-stability stond op dev met prefer-stable false. Daardoor
resolveerde alles naar dev-branches: illuminate/support 13.x-dev,
phpunit 12.5.x-dev en mockery 2.0.x-dev. Die laatste alleen al gaf 44
deprecations. Nu stable met prefer-stable true, en mockery ^1.6 en
rector ^2.0 in plaats van versies die geen stable release hebben.

De require-lijst was een platgeslagen dependency-tree van 47 pakketten
waarvan er 39 transitief zijn. Dat is waar de brick/math pin vandaan
kwam, en zonder opschonen komt de volgende blocker er bij Laravel 14
gewoon weer in. Teruggebracht tot de acht illuminate-pakketten die de
source echt aanraakt: cache voor TaggableStore, console voor Command,
contracts voor Auth\Guard, database voor Model, Migration, Blueprint en
BelongsToMany, filesystem en view voor de migration-generator, http voor
Request in de middleware, en support voor de facades, ServiceProvider en
Str.

Die pakketten stonden op ^13.0, wat betekende dat 2.5.8 Laravel 13
afdwong. Nu ^12.0|^13.0, zodat een tag kan landen zonder dat afnemers
gelijktijdig mee moeten upgraden.

Tot slot had makeFilterName() in de tests een impliciet nullable
parameter, goed voor de laatste overgebleven deprecation.

Getest op beide: 46 tests, 95 assertions, geen deprecations, phplint
schoon op illuminate/support v12.65.0 en v13.24.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Het branches-filter op pull_request wordt door GitHub gewogen tegen de
kopie van de workflow op de base branch, en daar staat nog master. De
matrix draaide daardoor niet op deze PR. Filter eraf; push blijft
beperkt tot main.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MitchBred
MitchBred merged commit 37df5c1 into main Aug 6, 2026
5 of 6 checks passed
@MitchBred
MitchBred deleted the chore/laravel-13-proof branch August 6, 2026 12:08
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