Page MenuHomePhabricator

Refactor Thanks extension
Open, Needs TriagePublic

Description

Thanks extension is not currently very extensible due to the fact that almost all the logic is contained within one giant Hooks file.

Goals (TBD):

  • Modernize the code; adding hook handlers and servicifying, DI
  • More unit and integration tests
  • Pluggable notification system instead of hard wired Echo
  • JS code refactor to allow for more extensibility
  • Modernize API endpoints to use Rest handlers

Event Timeline

Change 921397 had a related patch set uploaded (by Mkostrzewski; author: Marcin Kostrzewski):

[mediawiki/extensions/Thanks@master] API: Refactor to match modern code standards

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

Change 921507 had a related patch set uploaded (by Mkostrzewski; author: Mkostrzewski):

[mediawiki/extensions/Thanks@master] SpecialPage: Remove deprecations and adjust code style

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

Change 921574 had a related patch set uploaded (by Mkostrzewski; author: Mnowicka):

[mediawiki/extensions/Thanks@master] Hooks: Convert hooks into handlers

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

Change 921507 merged by jenkins-bot:

[mediawiki/extensions/Thanks@master] SpecialPage: Remove deprecations and adjust code style

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

Change 921397 merged by jenkins-bot:

[mediawiki/extensions/Thanks@master] API: Refactor to match modern code standards

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

Tgr subscribed.

Pluggable notification system instead of hard wired Echo

Related (but a large amount of work): T128351: Notifications should be in core

@Emkarcinos Removing task assignee as this open task has been assigned for more than two years - See the email sent on 2025-05-22.
Please assign this task to yourself again if you still realistically [plan to] work on this task - it would be welcome!
If this task has been resolved in the meantime, or should not be worked on by anybody ("declined"), please update its task status via "Add Action… 🡒 Change Status".
Also see https://www.mediawiki.org/wiki/Bug_management/Assignee_cleanup for tips how to best manage your individual work in Phabricator. Thanks!