reedy@ubuntu64-web-esxi:/var/www/wiki/mediawiki/vendor$ php8.1 `which composer` depends monolog/monolog __root__ dev-master requires monolog/monolog (2.9.3) wikimedia/shellbox 4.3.0 requires monolog/monolog (^2.0.0)
Description
Details
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| In Progress | Jdforrester-WMF | T397070 Upgrade monolog/monolog to 3.9.0 or later | |||
| Resolved | Fomafix | T356451 Upgrade psr/log to 3.x | |||
| Resolved | Tgr | T363639 web-auth/webauthn-lib must be upgraded to 4+ for PHP 8.2+ support | |||
| Resolved | Lucas_Werkmeister_WMDE | T424254 Replace use of Psr\Log\Test\TestLogger from Wikibase, for MW-wide upgrade of psr/log to v3 | |||
| Resolved | Ejegg | T424398 Allow psr/log v3 for DonationInterface extension | |||
| Resolved | Ejegg | T424497 Allow psr/log v3 for smashpig library | |||
| Resolved | Jdforrester-WMF | T424405 Release a new version of xmp-reader (for psr/log v3) |
Event Timeline
Change #1235415 had a related patch set uploaded (by Reedy; author: Reedy):
[mediawiki/libs/Shellbox@master] composer.json: Re-allow monolog/monolog ^3.0.0
Change #1235415 merged by jenkins-bot:
[mediawiki/libs/Shellbox@master] composer.json: Upgrade to monolog/monolog ^3.0.0
Change #1286347 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/libs/Shellbox@master] Release v4.5.0
Change #1286347 merged by jenkins-bot:
[mediawiki/libs/Shellbox@master] Release v4.5.0
Change #1286350 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/libs/Shellbox@master] Expand monolog/monolog support to ^2.0.0 || ^3.0.0
Change #1286351 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/libs/Shellbox@master] Release v4.5.1
The signature of AbstractProcessingHandler::write changed in v3 (https://github.com/Seldaek/monolog/commit/22c8b19358e916c52f1d2170d44e172152de7c25#diff-374a6357e3f89f4b70f66a1606f8bd74c7e2bd39dce237578d134d86beb420c1)
The explicit type declaration needs to be removed, because the new LogRecord implements ArrayAccess and everything should still work?
Fatal error: Declaration of MediaWiki\Logger\Monolog\LegacyHandler::write(array $record): void must be compatible with Monolog\Handler\AbstractProcessingHandler::write(Monolog\LogRecord $record): void
Fatal error: Declaration of MediaWiki\Extension\EventBus\Adapters\Monolog\EventBusMonologHandler::write(array $record): void must be compatible with Monolog\Handler\AbstractProcessingHandler::write(Monolog\LogRecord $record): void
Fatal error: Declaration of MediaWikiLogHandler::write(array $record): void must be compatible with Monolog\Handler\AbstractProcessingHandler::write(Monolog\LogRecord $record): void
https://codesearch.wmcloud.org/search/?q=AbstractProcessingHandler
Change #1296010 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] Forward compatibility change for AbstractProcessingHandler on monolog v3
Change #1296011 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/extensions/DonationInterface@master] Forward compatibility change for AbstractProcessingHandler on monolog v3
Change #1296012 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/extensions/EventBus@master] Forward compatibility change for AbstractProcessingHandler on monolog v3
Change #1296012 merged by jenkins-bot:
[mediawiki/extensions/EventBus@master] Forward compatibility change for AbstractProcessingHandler on monolog v3
Change #1296011 merged by jenkins-bot:
[mediawiki/extensions/DonationInterface@master] Forward compatibility change for AbstractProcessingHandler on monolog v3
Change #1296010 merged by jenkins-bot:
[mediawiki/core@master] Forward compatibility change for AbstractProcessingHandler on monolog v3
Change #1297637 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] Forward compatibility change for log formatter/buffer on monolog v3
Change #1298410 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/extensions/WikimediaEvents@master] Forward compatibility change for AuthManagerStatsdHandler on monolog v3
Change #1298410 merged by jenkins-bot:
[mediawiki/extensions/WikimediaEvents@master] Forward compatibility change for AuthManagerStatsdHandler on monolog v3
Change #1297637 merged by jenkins-bot:
[mediawiki/core@master] Forward compatibility change for log formatter/buffer on monolog v3
Change #1298872 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/vendor@master] Upgrade monolog/monolog from v2.11.0 to v3.10.0
Change #1298873 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] Upgrade monolog/monolog from v2.11.0 to v3.10.0
Change #1298900 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Make LogstashFormatter::format() accept array or LogRecord
Change #1298916 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Soft-deprecate passing arrays to Monolog handlers/formatters
Change #1298917 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Replace deprecated Monolog\Logger level constants with Level enum
Change #1298918 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Require LogRecord (not array) for Monolog handlers/formatters
Change #1298900 merged by jenkins-bot:
[mediawiki/core@master] logger: Make LogstashFormatter::format() accept array or LogRecord
Change #1298872 merged by jenkins-bot:
[mediawiki/vendor@master] Upgrade monolog/monolog from v2.11.0 to v3.10.0
Change #1298873 merged by jenkins-bot:
[mediawiki/core@master] Upgrade monolog/monolog from v2.11.0 to v3.10.0
Change #1307322 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Accept Monolog 3 LogRecord in the Wiki and Context processors
Change #1307323 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Fix LineFormatter dropping private/exception context under Monolog 3
Change #1307326 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Cover LogstashFormatter V0 output and exception normalisation
Change #1307327 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Add LegacyHandler coverage for sink parsing and writes
Change #1307328 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Cover SyslogHandler RFC 3164 header construction
Change #1307329 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Cover LegacyFormatter and BufferHandler
Change #1307330 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Add end-to-end MonologSpi pipeline test
Change #1286351 abandoned by Jforrester:
[mediawiki/libs/Shellbox@master] Release v4.5.1
Change #1286350 abandoned by Jforrester:
[mediawiki/libs/Shellbox@master] Expand monolog/monolog support to ^2.0.0 || ^3.0.0
This typing error from https://beta-update.wmcloud.org/202607031540.log seems likely related:
15:44:17] Running update.php for 47 wikis.
[15:44:17] commonswiki | MediaWiki 1.47.0-alpha Updater
[15:44:17] commonswiki |
[15:44:17] commonswiki | Your composer.lock file is up to date with current dependencies!
[15:44:17] commonswiki | Going to run database updates for commonswiki
[15:44:17] commonswiki | Depending on the size of your database this may take a while!
[15:44:17] commonswiki | Fatal error: Uncaught TypeError: MediaWiki\Logger\Monolog\WikiProcessor::__invoke(): Argument #1 ($record) must be of type array, Monolog\LogRecord given, called in /srv/mediawiki-staging/php-master/vendor/monolog/monolog/src/Monolog/Logger.php on line 378 and defined in /srv/mediawiki-staging/php-master/includes/Logger/Monolog/WikiProcessor.php:26
[15:44:17] commonswiki | Stack trace:
[15:44:17] commonswiki | #0 /srv/mediawiki-staging/php-master/vendor/monolog/monolog/src/Monolog/Logger.php(378): MediaWiki\Logger\Monolog\WikiProcessor->__invoke(Object(Monolog\LogRecord))
[15:44:17] commonswiki | #1 /srv/mediawiki-staging/php-master/vendor/monolog/monolog/src/Monolog/Logger.php(646): Monolog\Logger->addRecord(Object(Monolog\Level), '[{reqId}] {exce...', Array)
[15:44:17] commonswiki | #2 /srv/mediawiki-staging/php-master/includes/Exception/MWExceptionHandler.php(653): Monolog\Logger->error('[{reqId}] {exce...', Array)
[15:44:17] commonswiki | #3 /srv/mediawiki-staging/php-master/includes/Exception/MWExceptionHandler.php(185): MediaWiki\Exception\MWExceptionHandler::logException(Object(TypeError), 'mwe_handler')
[15:44:17] commonswiki | #4 /srv/mediawiki-staging/php-master/includes/Exception/MWExceptionHandler.php(223): MediaWiki\Exception\MWExceptionHandler::rollbackPrimaryChangesAndLog(Object(TypeError), 'mwe_handler')
[15:44:17] commonswiki | #5 /srv/mediawiki-staging/php-master/includes/Exception/MWExceptionHandler.php(195): MediaWiki\Exception\MWExceptionHandler::handleException(Object(TypeError), 'mwe_handler')
[15:44:17] commonswiki | #6 [internal function]: MediaWiki\Exception\MWExceptionHandler::handleUncaughtException(Object(TypeError))
[15:44:17] commonswiki | #7 {main}
[15:44:17] commonswiki | thrown in /srv/mediawiki-staging/php-master/includes/Logger/Monolog/WikiProcessor.php on line 26
[15:44:17] commonswiki | Fatal error: Uncaught TypeError: MediaWiki\Logger\Monolog\WikiProcessor::__invoke(): Argument #1 ($record) must be of type array, Monolog\LogRecord given, called in /srv/mediawiki-staging/php-master/vendor/monolog/monolog/src/Monolog/Logger.php on line 378 and defined in /srv/mediawiki-staging/php-master/includes/Logger/Monolog/WikiProcessor.php:26
[15:44:17] commonswiki | Stack trace:
[15:44:17] commonswiki | #0 /srv/mediawiki-staging/php-master/vendor/monolog/monolog/src/Monolog/Logger.php(378): MediaWiki\Logger\Monolog\WikiProcessor->__invoke(Object(Monolog\LogRecord))
[15:44:17] commonswiki | #1 /srv/mediawiki-staging/php-master/vendor/monolog/monolog/src/Monolog/Logger.php(646): Monolog\Logger->addRecord(Object(Monolog\Level), '[{reqId}] {exce...', Array)
[15:44:17] commonswiki | #2 /srv/mediawiki-staging/php-master/includes/Exception/MWExceptionHandler.php(379): Monolog\Logger->error('[{reqId}] {exce...', Array)
[15:44:17] commonswiki | #3 [internal function]: MediaWiki\Exception\MWExceptionHandler::handleFatalError()
[15:44:17] commonswiki | #4 {main}
[15:44:17] commonswiki | thrown in /srv/mediawiki-staging/php-master/includes/Logger/Monolog/WikiProcessor.php on line 26
[15:44:17] Command failed (exit 255): /usr/local/bin/mwscript update.php --wiki=commonswiki --doshared --quick --skip-config-validationThe MediaWiki\Logger\Monolog\WikiProcessor class is trying to add some metadata to the log event. The current class expects an array as input instead of the Monolog\LogRecord object it is seeing at runtime. Monolog\LogRecord is new in Monolog 3.
Change #1307489 had a related patch set uploaded (by BryanDavis; author: Bryan Davis):
[mediawiki/core@master] monolog: Expect array|LogRecord for Monolog 3.x compat
Change #1307489 abandoned by BryanDavis:
[mediawiki/core@master] monolog: Expect array|LogRecord for Monolog 3.x compat
Reason:
I8255e4d146ba750481d52c70ae38c7745f504752
Change #1307322 merged by jenkins-bot:
[mediawiki/core@master] logger: Accept Monolog 3 LogRecord in the Wiki and Context processors
Change #1307323 merged by jenkins-bot:
[mediawiki/core@master] logger: Fix LineFormatter dropping private/exception context under Monolog 3
Change #1307326 merged by jenkins-bot:
[mediawiki/core@master] logger: Cover LogstashFormatter V0 output and exception normalisation
Change #1307327 merged by jenkins-bot:
[mediawiki/core@master] logger: Add LegacyHandler coverage for sink parsing and writes
Change #1307328 merged by jenkins-bot:
[mediawiki/core@master] logger: Cover SyslogHandler RFC 3164 header construction
Change #1307329 merged by jenkins-bot:
[mediawiki/core@master] logger: Cover LegacyFormatter and BufferHandler
Change #1307330 merged by jenkins-bot:
[mediawiki/core@master] logger: Add end-to-end MonologSpi pipeline test
Change #1307506 had a related patch set uploaded (by Jforrester; author: Jforrester):
[operations/mediawiki-config@master] logging: Switch the wmfconfig processor to Monolog 3's type (LogRecord)
Change #1307507 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] logger: Accept Monolog 2 array-typed processors under Monolog 3
Change #1307508 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] Revert "logger: Accept Monolog 2 array-typed processors under Monolog 3"
Yup, I've added a temporary hack into core in 1d5283662b18c85e98b9057ae41d5062938d7145 to deal with wmf-config's Monolog 2-ism; once the train fully deploys, we can land 3679399940019bb1dbb0161e095ff464cba542c8 in wmf-config and then revert it. (I should have thought to look for code in config rather than just MediaWiki land, ah well.)
Change #1307507 merged by jenkins-bot:
[mediawiki/core@master] logger: Accept Monolog 2 array-typed processors under Monolog 3
Change #1298916 merged by jenkins-bot:
[mediawiki/core@master] logger: Temporarily use wfDeprecated() to hunt down any Monolog 2 usage left
Change #1313247 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):
[mediawiki/vagrant@master] psr3: Drop monolog from composer.json
Change #1313247 merged by Gergő Tisza:
[mediawiki/vagrant@master] psr3: Drop monolog from composer.json
Change #1307506 merged by jenkins-bot:
[operations/mediawiki-config@master] logging: Switch the wmfconfig processor to Monolog 3's type (LogRecord)
Mentioned in SAL (#wikimedia-operations) [2026-07-28T10:25:21Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:1307506|logging: Switch the wmfconfig processor to Monolog 3's type (LogRecord) (T397070)]]
Mentioned in SAL (#wikimedia-operations) [2026-07-28T10:27:34Z] <jforrester@deploy1003> jforrester: Backport for [[gerrit:1307506|logging: Switch the wmfconfig processor to Monolog 3's type (LogRecord) (T397070)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.
Mentioned in SAL (#wikimedia-operations) [2026-07-28T10:34:54Z] <jforrester@deploy1003> Finished scap sync-world: Backport for [[gerrit:1307506|logging: Switch the wmfconfig processor to Monolog 3's type (LogRecord) (T397070)]] (duration: 09m 31s)
Change #1307508 merged by jenkins-bot:
[mediawiki/core@master] Revert "logger: Accept Monolog 2 array-typed processors under Monolog 3"
Change #1319958 had a related patch set uploaded (by BryanDavis; author: BryanDavis):
[mediawiki/extensions/GoogleLogin@master] Expand monolog/monolog support to ^2.2.0||^3.0.0
Change #1319958 merged by jenkins-bot:
[mediawiki/extensions/GoogleLogin@master] Expand monolog/monolog support to ^2.9||^3.0
Change #1298917 merged by jenkins-bot:
[mediawiki/core@master] logger: Replace deprecated Monolog\Logger level constants with Level enum