Community Tech/Global cross-wiki talk page

Tracked in Phabricator:
Task T88416

The global cross-wiki talk page project aims to make user talk page communication work over all wikis.

Rationale edit

Editors who are active on many different wikis find it difficult to keep track of all their individual talk pages, and it is easy to miss messages on talk pages on wikis you edit less often. This is also frustrating for those who try to ask a question or start a conversation but never get an answer. If we had one single talk page that worked on all wikis, this problem would disappear. This was the eighth most popular suggestion in the 2015 Community Wishlist Survey, with 66 supporting votes.

Status edit

The #8 wish on the 2015 Community Wishlist Survey is Global (cross-wiki) user talk page, a proposal which received 66 support votes. This is the Community Tech team’s analysis of that wish.

Purpose of the wish edit

“As an editor who is active in many Wikimedia projects, I have to oversee a large amount of [my] own user talk pages for new messages, in spite of being only one person behind this account. I have meanwhile lost track of which wikis I have visited and occasionally edited, so I left soft redirects to my home wiki talk page on some of them. It turns out, however, that users from other wikis want to stay in their wiki and just write comments under the soft redirect, with no possibility for me to take notice unless I regularly visit all wikis for new messages (which I do not do).” -- User:MisterSynergy, original proposal

Managing dozens of user talk pages across many wikis is very difficult, and this is an important problem to solve. However, there’s been a significant new development since the community proposed and voted for this wish at the end of 2015.

In May 2016, the Collaboration team released cross-wiki notifications on all Wikimedia wikis. This feature makes it much easier to keep track of messages and alerts across wikis.

Also, the Community Tech team is currently working on a cross-wiki watchlist (#4 on our 2015 Wishlist), which will also help people to keep track of talk pages across all the projects.

Given those developments, it’s not clear whether we still need a cross-wiki user talk page. Still, we ought to look into what this wish involves, and how it could work.

Components of the wish edit

The proposal broke the wish down to five bullet points:

  1. Accessible and editable on local wikis, i.e. users do not need to leave their home wiki; workflow for other users should not change of course
  2. New messages are automatically tagged with the wiki they originate from (e.g. “This message was written on de-wiki“)
  3. Wikilinks need to be prefixed, if not already done by the author of a comment
  4. Multi-language functionality: all structural parts of the talk page are shown in the language of the display wiki or according to visiting user settings…
  5. A global user talk page replaces all local user talk pages, which should go to archives during initial installation of a global user talk page - MisterSynergy, original proposal

With this feature, the local talk page would actually just be a mirror of the global talk page, with prefixed wikilinks based on the origin of the message.

Here’s how it works: I’m on French Wikipedia, and I go to your user talk page. What I see there is a mirror of your global talk page. I start a new thread, and post a message.

You’re on German Wikipedia, and you visit your talk page. My new thread is on the page, with a note that says “this message was posted on French WP”. The links that I added automatically have an [[fr: prefix, so you can see the page that I intended to link to.

You edit the thread and post a response, which I’ll see on French Wikipedia, with the note “this message was posted on German WP”. And so on.

What’s a message? edit

In order to note where each message was posted, the system needs to define what a “message” is. At first glance, this seems obvious: when I post a reply on your talk page, the text that I add is my “message”, and it can be tagged as coming from the wiki that I’m on.

Unfortunately, an edit doesn’t equal a message. An edit that I make on your talk page could be:

  • a new message
  • a correction/edit to a previous message
  • adding a signature
  • reverting vandalism
  • moving messages around on the page
  • archiving old threads

So we can’t say that each edit is a message, unless we create a specially defined chunk of text that would still be considered “my message” even if it’s moved or edited.

Another way to approximate this would be to define a “thread” as the chunk of wikitext under an H2 -- for example, ==Title of this conversation==. Threads are generally pretty likely to stay consistent over time. In that case, the global page could keep track of where the thread started, rather than each individual message. In order to do that, we’d have to create a structure for that chunk of wikitext.

Structured messaging system edit

To tag messages or threads with the wiki where they originated, we’ll have to create a structured messaging system, where there are discrete objects -- Message, and Thread -- that can be understood as coming from a particular source. If we know that a particular chunk of text is a message, then it should still be considered the same message even if someone else edits it.

The global talk page would then be a container, rather than a wikitext page. The container holds individual threads, and each thread is made up of individual messages. Each message would include metadata about the user who wrote it, and the wiki it was written on. Each message and each thread would have its own mini-history, accessible to view on each wiki.

There have been two projects in the past to build a structured messaging system on Wikimedia wikis -- LiquidThreads and Flow. Flow already has most of the structure that we’d need for this project. It doesn’t currently keep track of the wiki where a message originated, but that functionality could be added.

If we were to take on building a global cross-wiki user talk page, we would have to build it on top of the existing Flow structure. Modifying Flow to become a cross-wiki talk page would be much less work than trying to create a new structured messaging system from scratch.

During the Wishlist Survey’s discussion/endorsements phase, we asked the proposal’s creator, MisterSynergy, if building this feature on top of Flow would be an acceptable solution:

There are several elements for this proposal that require structured discussions -- separating individual discussions from the page, posting the same discussion in multiple places, tagging discussions with the wiki they originate from. This is basically Flow functionality. -- DannyH (WMF) (talk) 21:10, 18 November 2015 (UTC)
I wouldn’t be surprised if this is a rather complicated task to solve, and I don’t expect fast results. If Flow would help to solve this, I would be happy (although “my” de-wiki community actually seems to oppose Flow, unfortunately). —MisterSynergy (talk) 07:24, 19 November 2015 (UTC)

Wishlist Survey discussions edit

The discussions on this proposal brought up some interesting points that should be considered here.

During the voting phase, User:NickK wrote (as vote #51):

“Oppose, this would kill independence of individual wikis. Global talk pages would fall out of the scope of local recent changes / watchlists / user contributions / what links here etc.: if a user from dewiki wants to ask a user from frwiki about their edit in enwiki, where will this talk page end up? Logically it should be on enwiki so that other enwiki users can notice it and comment on it. In addition, for users active in many wikis global talk pages are useless as long as guidelines in these wikis are different: for the very same edits in two wikis one can get a praise from one wiki and a warning from another, as what can be a norm in one wiki can breach rules in another.”

This would definitely be a knotty problem to figure out for a cross-wiki talk page. Right now, Flow is set up just to run on a single wiki, so the history and contributions are all contained within that wiki’s bounds. If we were to create a global version, we’d have to figure out where these histories would live, and how users would be able to perform moderation functions.

Also during the voting phase, YBG wrote (as vote #59):

Support, But maybe an alternative would to it easy to transclude talk from all wikis.

This alternative would definitely be easier than building a structured messaging system. We’re planning to offer a similar feature when we build the cross-wiki watchlist -- a secondary option feature that would show each individual watchlist on the same page, instead of merging all the watchlists together into one. We want to see how that works out on cross-wiki watchlists, before we’d consider doing the same on globally transcluded talk pages.

Conclusion edit

The technical and social complexity of this wish is fairly daunting; a WMF product team has already spent several years working on a structured messaging system.

On the other side of the scale, the rollout of cross-wiki notifications has made this problem less urgent. The planned development of a cross-wiki watchlist will also help to solve the problem of keeping up with multiple user talk pages.

Weighing the costs and benefits of this project, we’ve decided that we’re not going to work on this wish. We’d risk getting stuck for a very long time, without any promise that we could deliver something the communities would approve of. Other wishes would remain unfulfilled, because we wouldn’t have the resources to work on them.

If you have more questions or ideas to share, please leave them on the talk page. Thanks!

Technical discussion and background edit

Internal Community Tech team assessment edit

Support: Medium. This is probably the most conflicted proposal in the top 10. It got a lot of support votes, because conceptually it's a really good idea -- just one place to check for messages and hold discussions, rather than multiple talk pages on different wikis. Oppose votes brought up different concerns: Would this fundamentally change the structure of a talk page? Where does the edit history live, and how would you monitor for abuse? Would you have to add a prefix for links? Isn't this too big for the Community Tech team? And the most important question: With the Collaboration team currently working on Cross-wiki notifications, do we really need this?
Impact: Unclear. When the Collaboration team rolls out cross-wiki notifications, we'll see how well that addresses the needs expressed in this proposal.
Feasibility: Difficult. Technically, this might depend on the shadow namespaces work mentioned above in the Central global repository section. Also, this project will probably involve substantial changes to the way that wiki talk pages currently work -- for example, if we want to track where each discussion started, then each discussion will need to be its own separate object, so that the global page can piece together the most recent discussions from each wiki. Keeping each discussion as a separate object would limit the open-page freedom of current talk pages. There are a lot of different trade-offs to discuss.
Risk: High. This will need substantial work to scope, research and design the product. Also, there are already three different discussion systems on Wikimedia -- wikitext, LiquidThreads and Flow -- and we'd need a really good reason to start building system #4. See also the concerns mentioned above about the edit history, link prefixes and so on.
Status: We'll need to have some discussions about what people are looking for, and thinking through how that would work. This had a lot of support votes, and it's worth digging into what people really want from this product. This is such a complicated project that it's likely we won't complete it by the end of the year, but the discussions and documentation would be a helpful step forward.