Page MenuHomePhabricator

Provide an easy to use support system for contributors to ask technical questions
Open, LowPublic

Assigned To
None
Authored By
srishakatux
Jan 18 2017, 10:29 PM
Tokens
"Like" token, awarded by AdHuikeshoven."Love" token, awarded by Kozuch."Love" token, awarded by xSavitar."Love" token, awarded by Bmueller."Like" token, awarded by Addshore.

Description

NOTE: As of Sept 8, 2020 the Discourse instance has been made read-only. A potential successor and IRC alternative has been set up in the form of a Mattermost server:
NOTE: The documentation of this task can be found at https://www.mediawiki.org/wiki/Discourse

Previous description

Emerged from a discussion about annual plans at technical collaboration's team offsite.

The idea is to help solve the problem of duplicate queries that we get on mailing lists, make it easier for users to search through the existing queries and get answers, and enable new contributors to ask questions, etc.


Open questions:

  • Yet another forum or rather a Q&A system? See T31923: Install Q&A system at ask.wikimedia.org.
  • Which discussion forum would be best for our purposes?
    • Stack Exchange?
      • Own install or install on the StackExchange cluster?
      • Pros:
        • Great UX and moderation workflows
        • Support from larger SO (or whichever) community
        • Most popular Q&A site + top100 website, might become a great way for attracting volunteer devs.
        • Answers searchable & updatable, unlike mailing lists
      • Cons:
        • Not open source (open content, though).
        • If we create a new site, we miss out on most of the network effects. If we use an existing site, all of them seem like awkward fits. (StackOverflow would be good for writing MediaWiki extensions; ProWebmasters and ServerFault for running your own MediaWiki; Web Applications for using MediaWiki as a service; SuperUser for using MediaWiki as a user. We want all of that but don't want to be fragmented into several sites.)
        • Reputation rules make community self-moderation hard (with the low question rates and scores that MediaWiki has, getting a gold tag badge that gives limited tag moderation power would take many years)
        • Not controlled by us so tools to invite people into our community are very limited
    • A StackOverflow open source clone which we host ourselves?
    • Discourse? (see also T124690)
    • Phabricator integrated forums - Ponder (or Nuance?)
      • Quim gave a small demo at the session in the Hackathon
  • What'll be the scope of the forum?
  • What's the timeline for this?
  • [Low priority] Migration of existing content from Wikitech-l at some point?

See also:

Related Objects

StatusSubtypeAssignedTask
OpenNone
DeclinedNone
ResolvedQgil
DeclinedNone
DeclinedNone
Resolvedelappen-WMF
Resolvedelappen-WMF
Resolvedelappen-WMF
DeclinedNone
Resolvedelappen-WMF
DeclinedNone
ResolvedQgil
ResolvedQgil
Resolvedyana_agun
DeclinedNone
DeclinedNone
ResolvedQgil
DuplicateNone
DeclinedNone
InvalidQgil
ResolvedQgil

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@Tgr thank you very much for your analytical reply. And yes, there have been contributions from Wikimedia to Phabricator that were helped by the fact that it is written in PHP.

  • The two-level system of answers + comments might come officially in the future, and if we needed so badly there is at least one plugin out there that offers that (and also upvoting, see an example). However, I would advocate to start simple with a plain installation and see how that goes. Just like upvoting, nested replies for answers + comments make more sense in long threads with many answers. I still fear more the problem of not having answers to questions. ;)
  • When you are creating a topic, Discourse shows you similar topics automatically. It also has an algorithm that shows "related topics" at the end of the discussion, but I don't know how useful that might be to detect duplicates.
  • Currently first posts can be converted to wiki, not the rest.
  • There is no way that I can see to categorize automatically posts of potentially low quality. Again, this might not be a problem with a low traffic site. Needing heuristics to process the quality of new questions from developers would be a great problem to have!
  • Discourse has badges and achievement-based access controls, highly configurable. This is something that Discourse implements very well, and I see it as a strong factor to choose this tool over other, even our own. I believe defaults will work very well in our community. Achievement related badges are very good engagement tools. Access controls are obtained as the user accumulates actions and experience, which is a good way to offer simpler functionality to newcomers, prevent too easy spam and grant permissions automatically to those who clearly have chances to make use of it.

Another useful feature of Discourse is that it can export whole categories (to json, by the sounds of it). So we could make those dumps available, if desired. (I'm not sure how it handles private topics etc.)

First stab: https://www.mediawiki.org/wiki/Discourse

I'll try to complete a first decent draft later today an share it at wikitech-l. I am also planning to create a subtask about the creation of the new discourse-mediawiki.wmflabs.org instance to discuss technical details.

I don't understand how the current proposal at https://www.mediawiki.org/wiki/Discourse fits with the stated purpose. Discourse is a forum system, not a Q&A system. It may compete with existing discussion venues such as mailing lists, IRC and Phabricator, but it's not a support system. I don't see any benefit in adding yet another forum.

The page https://en.wikipedia.org/wiki/Q%26A_software lists some criteria for a Q&A system (T31923). Askbot is the clear winner if we want a self-hosted instance.

Discourse can be used as a support system. We have discussed features that we would miss (T155678#3750581, T155678#3765636, T155678#3766315 ) and they don't seem to be critical for our goals.

We want to support developers, especially newcomers. The ultimate goal is not to answer questions, even if this is an important factor in the mix. The ultimate goal is to attract new developers and retain them. There is the hypothesis that a more flexible tool will be able to handle questions/answers properly and also become the nice and welcoming landing space for newcomers that we don't have. Strict Q&A systems are to be used for questions, and users leave when they get their answer.

Discourse can be used as a support system. We have discussed features that we would miss (T155678#3750581, T155678#3765636, T155678#3766315 ) and they don't seem to be critical for our goals.

These don't address the basic features of a Q&A system, described in the link I gave.

For instance, how do you even mark a topic as resolved, without clunky workarounds? https://meta.discourse.org/t/issue-resolved/28483
Even on-wiki discussion is better in that regard.

Let alone selecting the best answer among multiple which were provided, improving the best answer and so on. A forum system is a thoroughly inappropriate solution for the stated problem. If your goal is just to add another chatting venue it might be fine though.

@Nemo_bis if before or during the pilot (or at a later stage) we miss this functionality, we can install this plugin officially supported since June 2015:

Discourse Solved (Accepted answer plugin)

The Discourse Solved plugin allows users to accept solutions on topics in designated categories.

And how do you propose to gauge whether the functionality is missed? It's not about feelings, it's about choosing solutions which fit the stated purpose. Again, it's fine to just state you want one more chat/discussion system: people keep creating new ones all the time, it's not like it will be the end of the world.

And how do you propose to gauge whether the functionality is missed?

What about continuing this conversation? :)

I'm not against adding Discourse Solved (Accepted answer plugin), not at all. I just think that any plugin added to the default install deserves a discussion.

In this case we are talking about a stable plugin officially supported. The options are:

  • Let's start without this plugin, and check again (say) after a few weeks of pilot.
  • Let's start with this plugin since the beginning.

Opinions?

There are many orgs. that use Discourse as a Q&A system, and help new developers navigate documentation/code. Here are several that jumped out to me, and there are many open source projects using this platform. Here are some of the boards I found, if people would like to see how others orgs. are using this:

Mozilla: https://discourse.mozilla.org/
Twitter dev: https://twittercommunity.com/
Glowforge: https://community.glowforge.com/
Discourse: https://meta.discourse.org/
Atom: https://discuss.atom.io/

More: https://www.discourse.org/customers

There are many orgs. that use Discourse as a Q&A system, and help new developers navigate documentation/code. Here are several that jumped out to me, and there are many open source projects using this platform. Here are some of the boards I found, if people would like to see how others orgs. are using this:

Mozilla: https://discourse.mozilla.org/
Twitter dev: https://twittercommunity.com/
Glowforge: https://community.glowforge.com/
Discourse: https://meta.discourse.org/
Atom: https://discuss.atom.io/

More: https://www.discourse.org/customers

https://discourse.phabricator-community.org/ :)

Qgil raised the priority of this task from Medium to High.Dec 22 2017, 3:38 PM
Qgil moved this task from Oct-Dec 2017 to Jan-Mar-2018 on the Developer-Advocacy board.

So I started to play with discourse. One thing I wonder is what scope should this new discussion tool should target to have good chances to be complementary rather than a competitor with existing canal – if there is no long term goal to close some of them.

What are the question one should ask in order to decide to post its thoughts on phabricator, mailling-list, discourse, IRC, or some wiki talk page? I willingly exclude third parties such as stackoverflow.

Some activity diagram might be interesting here. By the way, is it possible to create plantuml diagrams within phabricator?

@Psychoslave about scope, it is explained at https://www.mediawiki.org/wiki/Discourse#One_place_to_seek_developer_support

This new channel is for developer support. If you are a developer and you have questions, this will be the place to ask.

That's it. If someone wants to propose other use cases, they will have to be discussed and agreed case by case, taking care of eventual closure of channels used for that same purpose.

Let's consider the plan for a pilot approved. There has been enough support to start the pilot. Some concerns have been raised, but none of them are considered blockers for the pilot.

Let's continue the work at T180854: Create discourse-mediawiki.wmflabs.org (pilot instance).

Let's consider the plan for a pilot approved. There has been enough support to start the pilot. Some concerns have been raised, but none of them are considered blockers for the pilot.

You hijacked the "Discourse" page on mediawiki.org in November 2017. Now, in December 2017, you are declaring the page you wrote to be approved by yourself? This is a bit bizarre.

You hijacked the "Discourse" page on mediawiki.org in November 2017. Now, in December 2017, you are declaring the page you wrote to be approved by yourself? This is a bit bizarre.

Please don't troll.

Please don't troll.

I'd say that throwing the "troll" word is an act of trolling here.

Generally speaking: If you have specific and constructive criticism, bring up specific constructive criticism.
The change summary from Nov 2017 says "Taking the liberty to dedicate this page to the discourse.mediawiki.org plans, since meta:Discourse covers already the rest."
If you have issues with that, explain your issues if you are interesting in solving issues. Accusing folks of "hijacking" isn't explaining your issue.

If you have issues with that, explain your issues if you are interesting in solving issues. Accusing folks of "hijacking" isn't explaining your issue.

My "this" referred to declaring the page/plan approved, not to hijacking that particular page title on mediawiki.org. Closing a discussion as having consensus that you both started and heavily advocated for a particular outcome in, to me, lacks propriety. I see it as a clear conflict of interest and a violation of basic principles such as https://en.wikipedia.org/wiki/Nemo_iudex_in_causa_sua.

Skimming this task, it seems like no amount of arguments against pursuing Discourse were going to work, though plenty of valid points have been raised yet again by Tgr and others. A few people are convinced there's a real problem and that introducing another forum will be the solution.

The proposal was announced on November 17. There was an initial wave of feedback and then some more comments and questions. The result of this feedback was a more complete plan to start this pilot (see diff). Meanwhile, support for the pilot was also confirmed from the Wikimedia Cloud Services and the Operations teams, ans it also got green light from the CTO.

The conversation has been pretty much inactive since the beginning of December. While there arae potential blockers and questions marks to have such service deployed in production, none of them block a pilot. Some of the questions actually welcome a pilot to proof whether such new space is needed and more effective than the ones we have.

For all these reasons, I believe it is reasonable to decide that the proposal made 6 weeks ago has enough support to move forward and start the pilot.

The conversation has been pretty much inactive since the beginning of December.

Perhaps because people who were active in the discussion earlier saw no reason to repeat their arguments. For instance, the diff you mention doesn't address any of my points.

Your points made in this topic were addressed above. The plugins that would provide functionality that you were mentioning were documented in the wiki page.

@Nemo_bis, you seem to be concerned about using Discourse as opposed to a QA specific software. The decision to run this pilot on Discourse is compatible with T181377: Set up test instances for popular Q&A software. We can try different options, compare, and then see what technology selection we make for a service deployed to production.

Qgil lowered the priority of this task from High to Medium.Jan 9 2018, 2:28 PM

After the announcement of https://discourse-mediawiki.wmflabs.org/ , the test pilot starts.

Sorry for the dance of tags. We are rearranging some things.

Let's consider this task a support request from the Developer-Advocacy team. I keep owning it and I plan to resolve it either way during this quarter.

Maybe a solution could be solved with federated networks like T198363: Consider ways to integrate with federated social networks ? One might define additional activity to "mark answer as correct", or for upvote/downvote if such features are desired.

@saper Do you mean to build a web application for Q&A based on ActivityPub from scratch? Or to add features to i.e. Mastodon?

Search is a key functionality for any Q&A system, and search is probably the weakest functionality of federated networks, almost by design.

At least when it comes to the scope of this task, I still think the right approach is to continue with the Discourse pilot in the direction of T180853: Bring a discourse instance for technical questions to production .

Yes, but the search can be made better. Discourse is almost good, but it has a habit of limiting brand new user options, which is a big limitation of a Q&A system. But it can be configured not to do this (giving more options at the level 0).

Regarding the first question I'd think we could do it in a step-by-step approach: take something ready to use (Mastodon/Pleroma/whatever) and see how that could fit and work from there. Then we'd have at least a something to extend OR a pilot experience with requirements for a good custom system if needed.

Of course, if ActivityPub federation could be added to Discourse, even better - but I think this is hard since Discourse is very opinionated of the content that is being fed into it, so I don't think it can be made to federate easily.

Discourse is almost good, but it has a habit of limiting brand new user options, which is a big limitation of a Q&A system.

Those limitations can be configured via admin interface. In any case, developing a Q&A system based on ActivityPub (something that as far as I know nobody has attempted) sounds like an option well above our ambition here.

Back to Discourse, today I took a look to the admin dashboard and extracted some metrics:

https://discourse-mediawiki.wmflabs.org/t/past-the-50-users-mark/113/4

My quick & brief read is that Discourse is accomplishing its functions as a developer support space (most of the developers landing there with questions get a reply fairly quickly) but maybe it is time to promote this space decidedly.

I am going to work on it again, helping the Developer Advocacy team to bring it from pilot to production unless someone comes with a better plan.

(Possibly not a support task though? :) )

(Although not a pure support task because it mixes my previous responsibilities in Technical Collaboration, I am doing this work for Developer-Advocacy.)

Qgil removed Qgil as the assignee of this task.Dec 27 2018, 4:33 PM

https://discourse-mediawiki.wmflabs.org was created as a pilot a year ago. Meanwhile, the Developer Relations team evolved int Developer-Advocacy , and I just resolved a task that I was cookielicking / bottlenecking: T194951.

It is time to change ownership of this goal officially, and reflect current reality. Developer Advocacy will proceed with next steps. Community-Relations and myself stay close to help wherever needed.

Aklapper lowered the priority of this task from Medium to Low.Mar 22 2019, 4:44 PM