Wikimedia Product/Perspectives/Tools/Tools for Developers

Summary
Empowering our volunteer developers to write better code that can work across wikis is going to be a key factor in helping us gather the sum of all knowledge. Wikis need code contributors as much as they need content contributors. Templates, gadgets, and bots act as superpowers in making editors more efficient at their tasks. Experienced editors use these tools to create and maintain backlogs, keep track of quality of incoming edits, perform mass actions on pages, ward off vandalism and more. However this superpower is limited to wikis which have contributors able to write code for the site. This creates disparity in the resources available to wikis. Bringing these important resources to all wikis is fundamental to bridging the equity gap across all language wikis.

This paper advocates for building a platform that can support tools which work on all our wikis seamlessly. Right now a lot of developer code lives on the wikis (gadgets, Lua modules, templates) where it really isn’t possible to do any type of testing, code reviews or debugging; nor is there any straightforward way to add localization or RTL support. This often leads to issues like security vulnerabilities, conflicts with MediaWiki deployed extensions, and bugs due to lack of maintenance. Also, in its current state, having code hosted on the wikis (in a per-project fashion) makes it hard to get in the mindset of having the code work across wikis. It’s easy to get sucked into customization and forget to think about things like RTL rendering or localization.

One aspect of the future platform depends on services being available to the developers and communities which they can use for building better tools. These may be services which can be used to do better copyright violation detection, vandalism detection, and image recognition, and provide access to better statistics, and so on. Part of the growth of services involves better partnerships with companies like Google, Turnitin and others providing such services. Another very important aspect of the platform is for Wikimedia engineering to collaborate with our volunteer developer communities to come up with documentation and best practices for creating new tools. An example of this can be tutorials and guidelines on how gadgets can make use of OOUI to standardize our interfaces and make them more accessible for everyone. Tools that facilitate communication among engineers and volunteer developer communities is key to achieving this goal.

White Paper
DRAFT

Resources
Author., 20xx title https://www.linklink.net