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>
registerSmtpTransport() fell back to an EMPTY scheme when encryption wasn't
'tls', so `new Dsn('', ...)` made symfony/mailer 7's EsmtpTransportFactory throw
UnsupportedSchemeException at boot for any non-tls / unset-encryption mail config
(plain smtp, STARTTLS, or an unconfigured env). Mirror stock Laravel: the else
branch is 'smtp'. Latent under symfony/mailer 6 too; surfaced consuming 4.2.97.
Verified: transport builds for enc ''/null/tls across ports (tls+465 → smtps,
else → smtp); fork suite 1647 green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
agissept
force-pushed
the
pre-release/4.2.97
branch
from
September 17, 2026 17:26
aee3b31 to
a25d825
Compare
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
Rilis 4.2.97 = enabler Wave-4 (task 4.0): naikkan vendor floor fork ke floor Laravel 13 supaya
illuminate/*:^13bisa co-install saat SCC-1 cutover (§1b Vendor-floor collision, PR #65). Independen dari 2.5. (Menggantikan #66 yang ter-close saat rename branch.)Dependency
symfony/*~6.4→^7.4,symfony/var-dumper→^7.4.nesbot/carbon^2.71→^3.8.4— kepaksa: carbon 2 menguncisymfony/translation ^6.monolog/monolog^2.10→^3.10(→3.12).illuminate/*:^13.Fork dibikin kompat (suite fork 1647 hijau, 0 signature-break)
Symfony 7 (typed returns):
Console\Command::execute():int;Console\Application::add():?Command+ buang override fluentsetAutoExit(parent:void);Foundation\Application::terminate&Http\StackedHttpKernel::terminate:void;Http\Request::createFromBase— JSONreplace()in-place (Symfony 7$request->requesttypedInputBag).carbon 3:
getMinutes()—diffInMinutes()kini signed+float → dulu negatif untuk TTL masa depan → cache write ke-skip diam (akar 6 gagal CachedRouting) →now()->diffInMinutes($ttl)cast int (Repository + TaggedCache).monolog 3:
Log\Loggertak berubah (konstanta level & string-levellog()masih ada di v3; diverifikasi smoke useFiles/log/level-filter). Fix bug latenLogServiceProvider(use Monolog\Loggernaungi kelas se-namespace →new Logger(new Logger())dua-dua Monolog; ctor ber-type monolog 3 → fatal saat boot) via aliasMonologLogger.Test:
FoundationArtisanTest— mock Command asli (find():Command) + capture ArrayInput (run():int).Verifikasi
composer update symfony/* carbon monolog -Wresolve (exit 0);composer validateok../vendor/bin/phpunit: 1647 test, 3659 assertion, 21 skipped — identik baseline pra-bump.composer.lockgitignored (konvensi library).Merge → tag
4.2.97. Setelah landas, Wave 4.1 SCC-1 tak lagi ke-block installability.🤖 Generated with Claude Code