Conversation
First slice of the Wave-4 enabler (task 4.0): raise the fork's vendor floor toward Laravel 13's so illuminate/*:^13 becomes co-installable later. symfony/* ~6.4 → ^7.4, symfony/var-dumper ~6.4 → ^7.4. carbon is dragged to ^3.8.4 by necessity: carbon 2 caps symfony/translation at ^6, so it cannot coexist with symfony/translation ^7. monolog stays ^2 (no symfony coupling; deferred to a later slice with illuminate/log:^13). Fork code made compatible with the new floor (fork suite: 1647 green, 0 signature breaks, unchanged from baseline): - Console\Command::execute(): mixed → int (Symfony 7 typed return). - Console\Application: drop fluent setAutoExit() override (parent is now : void) and move setAutoExit(false) out of the make() chain; add() gets : ?Command return type. - Foundation\Application::terminate / Http\StackedHttpKernel::terminate get : void (TerminableInterface typed return). - Http\Request::createFromBase: for JSON, replace() into the existing InputBag instead of assigning a ParameterBag (Symfony 7 typed $request->request). - Cache Repository/TaggedCache getMinutes(): carbon 3 diffInMinutes() is now signed + float → use now()->diffInMinutes($ttl) and cast to int (was instance($ttl)->diffInMinutes(), which went negative for future TTLs and silently skipped the write — also the root cause of the CachedRouting misses). - FoundationArtisanTest: mock a real Command (find(): Command) and capture the ArrayInput via the matcher, since run(): int no longer returns the input. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Completes the vendor-floor bump for task 4.0: monolog/monolog ^2.10 → ^3.10 (→ 3.12), reaching Laravel 13's floor. Log\Logger already parsed levels via the Monolog\Logger::* constants (still present in monolog 3) and logs with string levels (monolog 3 log() still accepts them), so it needed no change — verified by a smoke over useFiles()/log()/level-filtering under monolog 3. Fixes a latent wiring bug in LogServiceProvider surfaced by monolog 3's typed constructor: `use Monolog\Logger` shadowed the same-namespace Illuminate\Log\Logger, so `new Logger(new Logger($env), $events)` built two Monolog loggers and passed a Monolog logger where a string name is required. (Latent since the 3.5 Writer→Logger rename created the name collision; the app runs an older tag and the fork suite doesn't cover register(), so it never fired.) Alias the import to MonologLogger so the outer resolves to the fork wrapper again. Fork suite: 1647 green, 0 signature breaks. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Konteks
Slice pertama dari enabler Wave-4 (task 4.0): naikkan vendor floor fork menuju Laravel 13 supaya
illuminate/*:^13bisa co-install nanti (lihat §1b Vendor-floor collision — PR #65). Independen dari 2.5 → langsung kemaster.Perubahan dependency
symfony/*~6.4→^7.4,symfony/var-dumper→^7.4.nesbot/carbon^2.71→^3.8.4— ikut karena kepaksa: carbon 2 menguncisymfony/translationdi^6, tak bisa hidup barengsymfony/translation ^7.monologtetap^2(tak ada kaitan symfony) — ditunda ke slice berikut barengilluminate/log:^13.Fork dibikin kompatibel (suite fork: 1647 hijau, 0 signature-break, sama seperti baseline)
Console\Command::execute: int: mixed→: intConsole\Application::setAutoExit: void(tak bisa fluent)setAutoExit(false)jadi statement sendiriConsole\Application::add: ?Command: ?CommandFoundation\Application::terminate,Http\StackedHttpKernel::terminateTerminableInterface: void: voidHttp\Request::createFromBase$request->requestkini typedInputBagreplace()in-place, bukan assignParameterBagRepository/TaggedCache::getMinutesdiffInMinutes()signed + floatnow()->diffInMinutes($ttl)+ cast int (duluinstance($ttl)->diffInMinutes()→ negatif untuk TTL masa depan → write ke-skip diam-diam; ini juga akar CachedRouting cache-miss)FoundationArtisanTestfind(): Command,run(): intArrayInputvia matchercomposer.lockgitignored (konvensi library) — konsumen resolve sendiri.Verifikasi
composer update "symfony/*" nesbot/carbon -Wresolve (exit 0)../vendor/bin/phpunit: 1647 test, 3659 assertion, 21 skipped — identik baseline pra-bump.Belum (follow-up 4.0)
monolog 2→3 (rewrite Log ke
LogRecord/Level, sinkron 2.13) — slice terpisah. Setelah 4.0 lengkap, Wave 4.1 SCC-1 baru installable.🤖 Generated with Claude Code