Page MenuHomePhabricator

Create an ADR for migrating to the HookContainer / HookRunner system within Wikibase and related extensions
Closed, ResolvedPublic

Description

The request in T338452 to migrate Wikibase to the HookContainer / HookRunner system introduced in Mediawiki 1.35 represents a substantial architectural change which will affect multiple extensions. As such, we want to introduce an ADR to describe the motivations and implications, and to record our decision to migrate to the new architecture.

Create an ADR for Wikibase outlining the migration for Wikibase and related extensions. Note that the ADR should include:

  • creating HookRunner classes to wrap invocations of $hookContainer->run in a typesafe way
  • creating PHP interfaces for the individual hooks
  • implementing the Hook interfaces in both the HookRunner classes and on the hook targets (where such direct implementation of the interface does not create a new hard dependency between an extension and Wikibase)
  • the explicit decision to make necessary changes in related extensions (ArticlePlaceholder, WikibaseLexeme, WikibaseQualityConstraints, WikimediaBadges, Wikibase(Lexeme)CirrusSearch and WikibaseMediaInfo)

Acceptance Criteria

  • A Wikibase ADR has been created that outlines the motivations for and implications of making the architectural change.
  • The ADR has been reviewed, accepted and merged

Related Objects

Event Timeline

Change #1135676 had a related patch set uploaded (by Arthur taylor; author: Arthur taylor):

[mediawiki/extensions/Wikibase@master] ADR: Use HookRunner pattern for hooks

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

Change #1135676 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] ADR: Use HookRunner pattern for hooks

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