Requests for comment/Add developer link to footer of Wikimedia wikis

This page is mostly just notes related to 33464.

Position
The current footer links at https://en.wikipedia.org/ look like:

Contact us Privacy policy  About Wikipedia   Disclaimers   Mobile view

There seems to be wide agreement that adding the link after "Mobile view" would be best for now.

Why not use the "Powered By MediaWiki" button? That button is intended to advertise MediaWiki. This new link is intended to draw in developers who want to contribute code or re-use Wikimedia's content in their own projects.

Label

 * API
 * Developer Central
 * Developer hub
 * Developers
 * Get involved
 * Too confusing. Get involved with what?  If I saw this at the bottom of a Wikipedia page, I would assume it meant 'get involved with Wikipedia'.  Does not lead people to consider that it is anything to do with the software that is running the site. --HappyDog (talk) 10:49, 21 September 2012 (UTC)
 * Wikimedia developer hub
 * Definitely not! 'MediaWiki developer hub', perhaps, but if this new page is intended to be WMF-focussed then it should not be part of vanilla MW. --HappyDog (talk) 10:49, 21 September 2012 (UTC)

Destination

 * mw:API:Main page
 * Developer hub (Wikimedia developer hub)
 * Developer hub
 * mw:User:Jdlrobson/Developer Hub
 * Get involved
 * mw:Help:Contents
 * How to become a MediaWiki hacker
 * mw:Manual:Contents
 * MediaWiki
 * mw:Project:Help
 * Sysadmin hub
 * User hub
 * https://www.mediawiki.org/w/api.php

Examples

 * Facebook
 * Flickr
 * GNOME
 * LibreOffice
 * MediaGoblin
 * Mozilla
 * Twitter
 * Wordnik

Some of these are general "get involved" splash pages, and the developers link is a second level. This may be a good way to do things.

It's also important to consider that some of these services are only interested in code contributions or only interested in data re-use. Wikimedia is concerned with both (re-using Wikimedia wikis' data and encouraging code contribution).

Content
Items to possibly include or exclude:
 * m:Research:Index
 * Wikimedia update feed service
 * Data dumps
 * Tech
 * mw:API:Main page
 * https://www.mediawiki.org/w/api.php
 * Special:ApiSandbox
 * Code samples
 * mw:User:Sumanah/ApiDocsImprovement
 * Annoying little bugs
 * mw:API:Tutorial
 * Gadget kitchen
 * mw:Manual:Skins
 * mw:Manual:Extensions
 * https://bugs.mediawiki.org (filing and fixing!)
 * GitHub
 * Pretty icons similar to http://developer.wordnik.com
 * Pretty icons similar to http://developer.wordnik.com

Implementation

 * Must be translatable!
 * Must make sense in a vanilla MW installation, and on non-WMF sites!
 * One way of achieving this might be to have both the label and the URL customisable via the MediaWiki: namespace, with a default label of "Developers" pointing to a page on mw.org that is specifically about MW development, e.g. Developer hub. This landing page should contain no reference to anything WMF-specific at all.  On WMF wikis a different landing page could be used with more WMF-focussed content, and other users could similarly customise the destination if appropriate (e.g. Wikia might want to point to their own developer's hub). --HappyDog (talk) 11:02, 21 September 2012 (UTC)
 * We may want to include this link as part of MediaWiki core, but that's mostly separate from this RFC. This RFC is about the footer of Wikimedia wikis specifically. --MZMcBride (talk) 15:07, 21 September 2012 (UTC)
 * Should use a future-proof URL.
 * The URL that we embed into the software should be a new URL used specifically for just this one purpose. It should be chosen such that we never ever need to change the URL in the future, otherwise older installations will end up with dead links.  This is particularly important if we link to an existing page, which may end up evolving in a way that becomes no longer suitable as the destination for this link.  Existing suggestion is to have dedicated sub-domain (e.g. developers.mediawiki.org) which would redirect to the appropriate location.  This solves the problem, as if the ultimate destination is changed, we just need to update where the sub-domain is pointing to, without having to touch the software. --HappyDog (talk) 11:02, 21 September 2012 (UTC)

Idea 1
First, split by motivation:


 * I'm a developer. I want to:
 * (comment) Why "I'm a developer?" That's not a motivation, it's a label, and might not be true of everyone who wants to do these things. --MarkTraceur (talk) 22:57, 24 September 2012 (UTC)
 * Sorry, I didn't mean to suggest that the developer part was a motivation (though it is the reason that most people would hit this page...). The motivations are split between the two following bullets (you want to re-use data or you want to contribute code). The "developer" language is just an intro sentence before you hit the two choices (motivations). The language can be adjusted (and will be, for other languages, at a minimum). It could also just be removed. "I want to: (opt 1) (opt 2)." --MZMcBride (talk) 23:15, 24 September 2012 (UTC)
 * re-use data from Wikimedia wikis for my own project; or
 * contribute code to Wikimedia wikis.

For the first branch ("re-use data"):
 * Possibilities
 * API
 * Data dumps
 * Squid cache
 * Toolserver
 * Wikimedia Labs
 * HTML dumps
 * For each possibility, explain issues with:
 * Speed (Toolserver replication is crazy fast; scanning dumps is super-slow)
 * Data currency (dumps are old; API is freshest)
 * Hosting (host yourself; host elsewhere [Labs and Toolserver])

For the second branch ("contribute code"):
 * I'm interested in or want to learn more about:
 * By programming language:
 * Lua/wiki templates --> Scribunto
 * JavaScript/CSS --> Gadgets
 * Puppet, LDAP, Apache, other shit --> operations part of Git
 * PHP --> MediaWiki extensions; patches to MediaWiki!; code review!
 * Python, Perl, etc. --> bots
 * C# and whatever --> Huggle, AWB, etc.
 * By part of the software:
 * User interface for everyone
 * User interface for specific tasks/people/etc.
 * Operations/system administration --> operations part of Git again
 * Other parts

Third branch (bonus branch):
 * I'm a developer. I want to meet other developers in my area.
 * Meetups and hackat(h)ons
 * Conferences and anti-conferences and spitting contests and such

Then have a "I'm confused and need help" section with links:
 * Mailing lists
 * IRC
 * Help page on-wiki
 * Tech (tech village pump)

Idea 2
Treat it as an appeal but aimed at developers rather than donatees.

I think a personal touch is a great way to explain to a would be developer to why they should care about our apis and our codebase. Hearing from real people with real problems that they are solving in the real world would be an extremely inspiring way to get new people involved

I think the home page should be written as a personal appeal to a new developer from ALL developers with links in the right places to the right thing. I think this should also be followed up by a randomised personal appeal from a developer himself - we should mix these between app developers, bug wranglers, feature developers, volunteers, employees etc etc

See User:Jdlrobson/Developer Hub for suggested "appeals" Jdlrobson (talk)


 * I think a personal appeals (or "stories" as I'd call them) section would be nice. I don't think it should be the landing page. Developers are mostly straightforward people. The emotional part is important (child in Africa, et al.), but when someone clicks "Developers" in the footer of a Web site, that's simply not what they're looking for. They want information about how to re-use Wikipedia's data or how to hack the code (put very simply). Consequently, I think our first response has to be "here's what you need: [link] [link] [link]." The follow-up can be the appeals, in my view.
 * That said, I do think a third branch is needed, though (bringing us to four, I guess in Idea 1). I think "I'm a developer. I want to [meet other developers in my area]." should be a branch. I'll add that to Idea 1 now. --MZMcBride (talk) 22:11, 24 September 2012 (UTC)

Other entry points

 * http://developer.wikimedia.org/
 * http://developer.wikipedia.org/
 * http://developer.mediawiki.org