Wikimedia Developer Summit/2017/Building on Wikimedia services: APIs and Developer Resources

This a main topic discussed at the Wikimedia Developer Summit 2017, facilitated by Chase Pettet and Bryan Davis.

The problem edit

We want developers to succeed in building useful things. As a community it benefits us all to share knowledge, practices, frustrations, and outcomes. We currently have a large ecosystem of resources for developers and most of them are not well known, understood, or documented.

Edits welcome

---

How to improve moving data into and out of the wikis (distribution)?

(...) Ensuring that all new business logic is available via the Action API or other externally automatable means. If we could make a collective decision that a SpecialPage must just be a user interface over an API that can be manipulated programmatically both inside and outside of MediaWiki+extensions then we would be turning a corner towards the possibility of radical new user interfaces (single page app, service workers, rich desktop/mobile apps).

This is related to the Developer Experience (DX). The requirements for useful, consistent and well documented web APIs is largely the same as for useful, consistent and well documented PHP service interfaces or useful, consistent and well documented puppet roles for Labs (although the way these requirements will be implemented will of course be completely separate).

Gathering feedback about the usability of the action API. What pain points are there.

Proposals welcome edit

  • How can we better distribute information on our websites? (< -- Does this mean developer practices information?)
  • What data should we make available via API's or other means and what should those means be?
  • What tools are being built already and how to find them and participate?
  • How should I manage my tool in way that makes it sustainable?
  • How can we responsibly use shared resources like the Labs replica DB cluster?
  • What is included in dumps.wikimedia.org and what determines that? Who uses dumps and for what?
  • When should I request a Labs project and when should I join Tool Labs?
  • Understanding restbase
  • How can I consume a feed of recent changes?
  • How can we get more people involved in writing "how to" documentation for using Wikimedia services?
  • How can we recruit people interested in technical writing to be active on our developer focused wikis?
  • How can we promote Wikimedia's services to existing developers?
  • How can we promote Wikimedia's services to attract new developers?
  • How can developers start working on new services to be deployed on the WMF cluster?
  • How can we connect wikis that want new tools/bots/gadgets with developers looking for new projects?
  • How can we help maintainers of existing tools/bots/gadgets attract co-maintainers?
  • What do we need to do to grow the number of trusted volunteers who help Wikimedia Foundation staff maintain and extend Labs and Tool Labs?
  • What is Puppet and why should I use it with my Labs instances?
  • What is PaaS (Platform as a Service) and how would it make getting new tools/bots running easier?
  • How can we make building tools easier for people who are not comfortable with unix concepts and tools?
  • MediaWiki-Vagrant: "I can't imagine life without it" vs "why would I use that when I can just setup a wiki"
  • How can we share useful SPARQL queries for Wikidata?

Learn more edit

FIXME: useful links.