Page MenuHomePhabricator

Performance review request for Extension:ExternalGuidance
Closed, ResolvedPublic


Request to review the External Guidance extension.

Short description of the extension: Wikipedia content gets exposed externally in different ways, and through this project we intend to make it easy for people to return to the origin, and contribute directly. The objective of the extension is to inform users that the content they are viewing is different than the original content, and will be shown a guidance path to an entry point into a contribution funnel.

Link to code repo:

Test environment:

Primary team: Language (POC @santhosh )

As the extension is only available on labs currently, getting realistic feedback would be challenging. We are open to recommendations from the Performance team on how to go about this prior to production deployment (presently pitched for late January-early February), and reviews subsequent to deployment.

Event Timeline

Arrbee created this task.Jan 18 2019, 2:05 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJan 18 2019, 2:05 PM

Could you elaborate further on the use of the extension?

  • Where and when would it load?
  • What would the interaction model look like?
  • Walk us through a typical use case.

Could you elaborate further on the use of the extension?

I'll provide some more detail and links to relevant tickets below. Let me know if more information is needed.

  • Where and when would it load?

The extension will take effect when Wikipedia content is loaded from an external translation services. Users viewing a translated version of a page on Google Translate will see the changes that this extension supports. Users accessing the content on the Wikipedia site will see no change.
In order to support this, a small part of the extension code (to detect whether content is accessed from an external translation service) will be loaded for all users, but the rest of the extension will be only loaded and applied with the content is accessed from a translation service.

  • What would the interaction model look like?

I'm not sure if you are asking about the user interactions, or the software interactions.
In terms of user interaction, the user accessing a translated version of a page is shown an indicator to clarify that the content is an automatic translation (T212202) which can be accessed for additional details (T212329). An action to contribute is also provided (T212300) which redirects users out of the translation service into a special page that explains the options to contribute. In that way a users can read a translation of a Wikipedia article in a language, and find their way to edit/create the local version of such article with the usual tools in such language.

On the technical component interactions, @santhosh can provide more details if needed.

  • Walk us through a typical use case.

An Indonesian user searches Google for "Extreme ironing", and an English Wikipedia article is shown in the results. Since there is no Indonesian version of the article and the user wants to read about it in Indonesian, the user clicks on "translate this page" option and gets to a translated version of the original page into Indonesian.

Alternatively, since Google is increasingly exposing translated versions of content directly as part of their search results, the user may just click on one of those translated results instead of explicitly selecting a "translate this page" option.

In any case, the user is accessing a translated version of a Wikipedia page delivered form Google Translate servers, and the goal of the extension is to make some aspects clear that would be confusing in this context: (a) the content provided is an automatic translation, (b) whether a local version of the article exists created by editors, and (c) which are the options to contribute (editing the original article, and editing/creating a local version).

Change 486472 had a related patch set uploaded (by Gilles; owner: Gilles):
[mediawiki/extensions/ExternalGuidance@master] Performance optimisations

Gilles added a subscriber: Gilles.Jan 25 2019, 1:58 PM

This is an initial pass, I looked at the essentials (code loading strategy).

kchapman assigned this task to Gilles.Jan 29 2019, 6:33 PM
kchapman moved this task from Inbox to Doing on the Performance-Team board.

Change 487671 had a related patch set uploaded (by Gilles; owner: Gilles):
[mediawiki/vagrant@master] Create role for ExternalGuidance extension

Change 487671 merged by jenkins-bot:
[mediawiki/vagrant@master] Create role for ExternalGuidance extension

Change 486472 merged by jenkins-bot:
[mediawiki/extensions/ExternalGuidance@master] Performance optimisations

Gilles triaged this task as Medium priority.Feb 5 2019, 9:20 AM
Gilles removed a project: Patch-For-Review.
Gilles closed this task as Resolved.Feb 5 2019, 9:37 AM

Given how simple the extension is, these initial fixes seem like there were all that could be optimised for performance. If the extension sees significant follow-up work feel free to ping us again. This is good to go for production, from a performance perspective.

santhosh moved this task from Backlog to Done on the ExternalGuidance board.Feb 7 2019, 5:50 AM