Discourse


 * For the proposal to use Discourse as a platform for Wikimedia discussion, see Discourse. For the skin, see 

Discourse is an open source web discussion platform (Wikipedia links - demo). The Technical Collaboration team is planning to experiment with Discourse as a developer support channel.

One place to seek developer support
Currently developers (and specially newcomers) have a hard time finding the right place to ask questions. Project:Support desk or any other wiki Talk pages in MediaWiki.org and technical spaces in other wiki projects? wikitech-l or any of the other dozen lists? #wikimedia-dev or any of the other dozen IRC channels? StackOverflow?

Meanwhile, the experienced developers willing to help suffer the same problem. If a question lands at the right moment in the right place, good. Otherwise it is lost. Community collaboration based on project knowledge or expertise area is basically none because of this fragmentation.

Scope
Anything that a developer needs to know in order to produce software for the Wikimedia movement. This goes from MediaWiki core and extensions to apps, tools, bots, gadgets, templates... Non-Wikimedia projects using our projects or APIs should be able to have their space as long as they come with maintainers.

Even if the initial target are developers, if the initiative is successful we could consider to bring in sysadmins and users, here too as long as they come with maintainers.

Languages
English is planned to be the primary language of this space, just like it is the primary language of Wikimedia technical spaces in general.

Discourse offers users the possibility to configure the interface to their preferred locale among a list of supported languages. However, Discourse is probably not good as a really multilingual site. Users can post in the languages they prefer, but there is no functionality to identify the language of a post, link translations of a same document, search per language...

Maintenance
The Technical Collaboration and the Wikimedia Cloud Services teams collaborate in the maintenance of the content and the infrastructure of this developer support channel. (Jokes apart, this hasn't been discussed yet although there have been suggestions from both teams) We expect many volunteers to assume moderation / maintenance tasks, especially around specific categories or tags. Volunteers willing to get more involved can achieve any trust level up to administrators, just like in MediaWiki.org. In fact, Discourse is very well designed to promote users through levels of higher trust based on their activity.
 * Technical Collaboration takes care of the site content and the developer support. This means that they will cover what needs to be done and nobody else is covering. During the pilot phase, they are in charge of bootstrapping the space, point newcomers to the new space, recruit experienced developers to answer question, and define the processes needed as we go.
 * FIXME NEEDS DISCUSSION Wikimedia Cloud Services takes care of the site infrastructure and technical decisions. They also take care of supporting the categories / tags related to their area of developer support.

Why Discourse
Discourse is very newcomer friendly, thanks to its ease of use, simple UI, and engagement features. It is also a powerful platform for experienced users, moderators and administrators. Currently MediaWiki doesn't have any alternative at this level. Specialized Q&A alternatives offer additional features like voting questions/answers and nested comments, however we don't believe such features will be critical with the volume of activity expected in our site. StackExchange is not open source, and we don't see the benefit of handling our developer support in a commercial 3rd party site.

Highlighted features

 * Welcome bot teaches to newcomers the basic functionality in an interactive way.
 * Users receive achievement badges and are granted new features and higher trust level roles as they acquire experience.
 * This also means that average spammers / vandals can do less damage.
 * Categories and tags + levels of watching and configurable notifications allow user to define with precision the topics they want to be notified about.
 * Similar topics suggested when creating a new one.
 * URLs in posts are turned into embedded previews (e.g. Youtube links are shown as videos) with Onebox.
 * Syntax highlighting for code.
 * Additional topics recommended at the end of threads.
 * Possibility for users to mark topics and comments with "likes" and "flags", collectively promoting or reporting messages.
 * First post can be wikified.
 * Private 1:1 messages with the possibility to add more users.
 * Possibility to create user groups sharing permissions and privacy levels.
 * Official plugin to accept a reply as the answer.
 * There are third party plugins for chat, if needed.
 * All this mobile friendly...
 * ... and with emojis!!!! ;)

Implementation plan
To be discussed at least with Wikimedia Cloud Services and Operations. Big changes might and probably will occur. Based on the Phabricator experience, there are some aspects that need to be thought out beforehand:
 * 1) T180854 Start with a protoype in mediawiki-discourse.wmflabs.org as a way to experiment with the structure, maintenance, workflows... See whether current and new Wikimedia developers like it and see a future for it.
 * 2) T180853 Once there is consensus and inertia, move to production at discourse.mediawiki.org
 * Wikimedia single user login. Do we start without it in Labs? If so, how can we migrate users once SUL is available?
 * HTTPS, is that a problem?
 * Media files, are they a problem?
 * Private message functionality, is it a problem? FWIW administrators can access to all private spaces and messages via UI in addition to checking the database if they have access.

Timeline

 * FIXME previous steps go here.
 * 2017-11-18 This page revamped and announced in wikitech-l and Project:Current issues.