Page MenuHomePhabricator

Convert LogFormatter to use dependency injection
Closed, ResolvedPublic

Description

rMW9de0e23b48dc: Support dependency injection in log formatters converted $wgLogActionsHandler to use dependency injection, but on hindsight that isn't very useful in practice. Basically every log action handler extends core's LogFormatter which doesn't use dependency injection, and converting it means every child class will have to be updated, so it would be nice to get that in before the 1.42 release. To be able to hard deprecate the old way of constructing formatters, all Wikimedia extensions need to be updated.

  • MediaWiki core (28 files)
  • mediawiki/extensions/AbuseFilter (5 files)
  • mediawiki/extensions/CentralAuth (9 files)
  • mediawiki/extensions/CheckUser (4 files)
  • mediawiki/extensions/FlaggedRevs (2 files)
  • mediawiki/extensions/Flow (1 files)
  • mediawiki/extensions/GlobalBlocking (1 files)
  • mediawiki/extensions/GrowthExperiments (3 files)
  • mediawiki/extensions/IPInfo (2 files)
  • mediawiki/extensions/Interwiki (1 files)
  • mediawiki/extensions/LiquidThreads (1 files)
  • mediawiki/extensions/MassMessage (2 files)
  • mediawiki/extensions/Newsletter (1 files)
  • mediawiki/extensions/OAuth (1 files)
  • mediawiki/extensions/PageTriage (1 files)
  • mediawiki/extensions/SpamBlacklist (1 files)
  • mediawiki/extensions/Thanks (1 files)
  • mediawiki/extensions/Translate (1 files) - MLEB, not requires 1.42 yet
  • mediawiki/extensions/TranslationNotifications (1 files)
  • mediawiki/extensions/WikimediaMessages (1 files)

Event Timeline

Change 995184 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/core@master] [WIP] logging: Convert to dependency injection

https://gerrit.wikimedia.org/r/995184

Change 995185 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/core@master] [WIP] logging: Add LogFormatterFactory

https://gerrit.wikimedia.org/r/995185

Change 995186 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/core@master] [WIP] logging: Hard-deprecate instantiating core loggers without DI

https://gerrit.wikimedia.org/r/995186

Change 995682 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/extensions/CentralAuth@master] Convert loggers to dependency injection

https://gerrit.wikimedia.org/r/995682

Change 995843 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/extensions/AbuseFilter@master] Convert loggers to dependency injection

https://gerrit.wikimedia.org/r/995843

Change 995925 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/extensions/OAuth@master] Update log formatter dependency injection

https://gerrit.wikimedia.org/r/995925

Change 1007438 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] Inject services into LogFormatter base class and use it

https://gerrit.wikimedia.org/r/1007438

Change 1007440 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] logging: Inject services into PageLangLogFormatter

https://gerrit.wikimedia.org/r/1007440

Change 1007687 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] logging: Inject services into LegacyLogFormatter

https://gerrit.wikimedia.org/r/1007687

Change #1007438 merged by jenkins-bot:

[mediawiki/core@master] logging: Inject services into LogFormatter base class and use it

https://gerrit.wikimedia.org/r/1007438

Change #1007440 merged by jenkins-bot:

[mediawiki/core@master] logging: Inject services into PageLangLogFormatter

https://gerrit.wikimedia.org/r/1007440

Change #1007687 merged by jenkins-bot:

[mediawiki/core@master] logging: Inject services into LegacyLogFormatter

https://gerrit.wikimedia.org/r/1007687

Change #1015582 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/IPInfo@master] logging: Inject services into IPInfoLogFormatter

https://gerrit.wikimedia.org/r/1015582

Change #1015583 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/MassMessage@master] logging: Use injected services in MassMessageSkipLogFormatter

https://gerrit.wikimedia.org/r/1015583

Change #1015588 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/AbuseFilter@master] logging: Inject services into AbuseLogHitFormatter

https://gerrit.wikimedia.org/r/1015588

Change #1015589 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/CheckUser@master] logging: Inject services into LogFormatters

https://gerrit.wikimedia.org/r/1015589

Change #1015591 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/FlaggedRevs@master] logging: Inject services into FlaggedRevsReviewLogFormatter

https://gerrit.wikimedia.org/r/1015591

Change #1015588 merged by jenkins-bot:

[mediawiki/extensions/AbuseFilter@master] logging: Inject services into AbuseLogHitFormatter

https://gerrit.wikimedia.org/r/1015588

Change #1015591 merged by jenkins-bot:

[mediawiki/extensions/FlaggedRevs@master] logging: Inject services into FlaggedRevsReviewLogFormatter

https://gerrit.wikimedia.org/r/1015591

Change #1015589 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] logging: Inject services into LogFormatters

https://gerrit.wikimedia.org/r/1015589

Change #1015582 merged by jenkins-bot:

[mediawiki/extensions/IPInfo@master] logging: Inject services into IPInfoLogFormatter

https://gerrit.wikimedia.org/r/1015582

Change #1015583 merged by jenkins-bot:

[mediawiki/extensions/MassMessage@master] logging: Use injected services in MassMessageSkipLogFormatter

https://gerrit.wikimedia.org/r/1015583

Change #995184 abandoned by Bartosz Dziewoński:

[mediawiki/core@master] logging: Convert to dependency injection

Reason:

Superseded by https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1007438

https://gerrit.wikimedia.org/r/995184

Change #995185 merged by jenkins-bot:

[mediawiki/core@master] logging: Add LogFormatterFactory

https://gerrit.wikimedia.org/r/995185

Change #995843 abandoned by Bartosz Dziewoński:

[mediawiki/extensions/AbuseFilter@master] Convert loggers to dependency injection

Reason:

Superseded by https://gerrit.wikimedia.org/r/c/mediawiki/extensions/AbuseFilter/+/1015588

https://gerrit.wikimedia.org/r/995843

Change #995682 abandoned by Bartosz Dziewoński:

[mediawiki/extensions/CentralAuth@master] Convert loggers to dependency injection

Reason:

No longer needed

https://gerrit.wikimedia.org/r/995682

Change #995925 abandoned by Bartosz Dziewoński:

[mediawiki/extensions/OAuth@master] Update log formatter dependency injection

Reason:

No longer needed

https://gerrit.wikimedia.org/r/995925

@Umherirrender's alternative solution https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1007438 means that we don't have to update every extension to accept services as LogFormatter constructor parameters, since they get injected by the LogFormatterFactory using setter methods.

I think this means that this is done?

The patch to add warnings when the services are not provided is now passing tests, and I'm not seeing any warnings with it locally either: https://gerrit.wikimedia.org/r/c/mediawiki/core/+/995186

Change #995186 merged by jenkins-bot:

[mediawiki/core@master] logging: Hard-deprecate instantiating core loggers without DI

https://gerrit.wikimedia.org/r/995186

matmarex assigned this task to Umherirrender.
matmarex removed a project: Patch-For-Review.