Community Tech/Cross-wiki watchlist

From Meta, a Wikimedia project coordination wiki

This page documents a project the Wikimedia Foundation's Community Tech team has worked on or declined in the past. Technical work on this project is complete.

We invite you to join the discussion on the talk page.

Tracked in Phabricator:
Task T5525

The cross-wiki watchlist project aims to make it easier for editors who edit on more than one wiki by enabling them to keep track of all articles they are watching from one wiki.

This project was  Declined as out of scope. It has been superseded by the GlobalWatchlist extension.

Current work, for discussion[edit]

These are wireframes, shown here in rough form, because we want the community to have the opportunity to participate in this process, as the project develops. Please let us know what you think on the talk page!

Here's the functionality that these wireframes show:

  • The items on the watchlist are essentially unchanged from the current display.
  • There is a colored bubble on the left side of each item, indicating the project that the item comes from. For the wiki that you're currently on (EN:WP in this example), that wiki's bubble is light gray. The colors for the other projects are assigned on the fly, and are consistent for this pageview.
  • There's two basic designs -- showing the watchlist items chronologically, and sorting by project. In the first group, you can also filter to show all wikis, the wiki you're currently on, or any combination.
  • There's also a wireframe that shows the enhanced watchlist (i.e. both "Expand watchlist to show all changes" and "Group changes by page in recent changes and watchlist" in preferences)

What we want to know: How would you use this? Which elements would fit your workflow, and which would get in your way? Do the display options -- "chronological list" vs "split by project" -- make sense? Which one do you think you would use? What are the important missing pieces?

Requirements[edit]

This is a draft of requirements for the new interface; this needs discussion. Come join the discussion on the talk page.

"Wiki" here means any Wikimedia project, in any language. "Current wiki" means the wiki that I'm currently on.

As a logged-in contributor who's active on multiple wikis...

  • I want easy, on-wiki access to a combined, chronological watchlist on one page that includes all of my watchlist items from the wikis where I'm watching pages.
  • I want to easily tell which wiki each individual watchlist item belongs to.
  • I want to be able to filter which wikis appear in the watchlist -- including all wikis, just the current wiki, or a combination.
  • I want to be able to switch from the chronological watchlist to a "split by project" view, which shows multiple watchlists, arranged in sections down the page.
  • I want the filter to be sticky, and always show me the most recent setting that I've used.
  • I want to be able to click on any of the links in the watchlist item, and go directly to the page on the item's wiki. (Including diff, history, page title, username, talk, contribs.)
  • I want the cross-wiki watchlist to use the Preferences settings for the current wiki.
  • I want to be able to use the options in the existing "Watchlist options" box: Period of time to display, Hide checkboxes, and Namespace filtering.

Note: View and edit watchlist, Edit raw watchlist and Clear the watchlist functionality should remain the same, just affecting watchlist items from the wiki that I'm currently on.

Open questions[edit]

  • For split by project view: What's the order of the wikis displayed? Alphabetical (according to language code)? Arranged by the most recent item? (This is potentially a performance drag, if we have to make separate queries.)
  • For split by project view: The watchlist preferences can go up to 1,000 items and 30 days. If I have 1,000 items set as my preference, do I see 1,000 of the current wiki and then 1,000 of each of the other wikis? That's a lot of scrolling. A possibility: keep 1,000 of the current wiki, and cut off the other wikis at a reasonable point, maybe with a "see more from this wiki" link.
  • More options: suggested by User:JAn Dudík on the talk page: "On different projects I have different habit to check watchlist. So it would be useful (and probably easy to implement) possibility to display watchlist only for one family (WP, Wikt, Comm...) or only for one language (en.wp, en.wikt, en.source, ...)"

Status[edit]

For more details, please see our meeting notes and the Phabricator task.

Oct 17, 2016[edit]

We're working on the early stages of building the cross-wiki watchlist, making changes to the Centralauth database. These are moving along; we're planning to have a proof-of-concept prototype for the feature up on the Beta cluster by the end of December.

Aug 5, 2016[edit]

We've completed the technical plan for the cross-wiki watchlist, thanks to the help of the Architecture Committee and others. You can see the whole conversation on the RFC ticket: T126641.

July 13, 2016[edit]

We're currently investigating the technical plan for cross-wiki watchlist. Some serious concerns have been raised about performance and architecture. A truly global watchlist would need to call 800 wikis every time the page is loaded -- potentially a big strain on the infrastructure. Conversations are currently happening on an RFC ticket in Phabricator: T126641.

June 8, 2016[edit]

Wireframes for the filters are posted above and on the talk page for discussion. There are two display options -- showing all of the wikis in a single chronological list, or showing them split by project. Within the chronological list, there are further options for filtering which wikis are displayed, so that you can just focus on the wiki you're currently on, or the two wikis you're most focused on, etc.

May 26, 2016[edit]

The talk page discussion on the first set of wireframes showed that people generally had a negative view of that approach. The main problem is that the design added more vertical space for each item, going from one line to two or three per item. This makes it harder for people to quickly browse through a long list. The unanimous sentiment was to make the design more compact. There were also some questions about the project's scope -- the wireframes showed some extra features that are not strictly cross-wiki related.

Given that -- we're posting a new wireframe that scales back the ambition of the first set. :) The new wireframe can be seen above, and on the talk page for more discussion.

The new design uses a one-line per item model, basically keeping the existing watchlist structure intact. The addition is the colored bubbles on the left side of each item, which indicates which wiki the watchlist item comes from. The bubble for the wiki that you're currently on is transparent, so the colors indicate items from other wikis. We'll post more wireframes soon that show more filters and options for display.

May 19, 2016[edit]

Early wireframes are posted on this page and on the talk page, for discussion.

March 11, 2016[edit]

We have draft requirements for the project, and we're going to start getting some user feedback and ideas soon.

The first step will be a public survey, to help the team understand more about how active contributors use watchlists. We'll announce the survey on Wikimedia-L and Wikitech-L, on relevant Phabricator tickets, and here on Meta. Our goal is to get about 100 responses from active contributors. We'll publish the aggregated results on Meta after the survey is closed.

The results of the survey will help to inform Shannon, the team's interaction designer, so that she can come up with initial drafts for community feedback.

Survey results[edit]

Survey results summary

In April 2016, the Community Tech team conducted a survey about how watchlists are used by active Wikimedia contributors. Respondents were recruited by posting messages on public mailing lists and community talk spaces on Wikimedia wikis. 87 people participated in the survey.

The results and analysis are in the Survey results summary, attached here. Raw results are provided below.

Demographics[edit]

Which Wikimedia projects do you contribute to on a regular basis, in any language?

Project Respondents
Wikipedia 85
Commons 62
Wikidata 45
Meta-Wiki 35
MediaWiki.org 23
WMF or WMF chapters 15
Wiktionary 13
Wikiquote 9
Wikisource 6
Wikivoyage 5
Wikibooks 2
Wikiversity 1

If you contribute to or watch pages on Wikipedia, how many languages are you active on?

Languages Respondents
1 language 32
2 languages 25
3 languages 12
4-5 languages 11
6 or more 4

How often do you contribute to Wikimedia projects?

Answer Respondents
Multiple times a day 46
Every day 20
A few times a week 17
Once a week 1
Monthly 3

Watchlist use[edit]

For the following reasons, how likely are you to add a page to your watchlist?

Question Not at all likely Somewhat likely Very likely Total N
Follow changes to a page you've created 4 7 75 86
Follow a file that you've uploaded 17 15 54 86
Follow a talk page to see responses 12 21 52 85
Follow a news/community page for updates 24 22 40 86
Follow changes to a page you've contributed to 7 43 36 86
Follow a noticeboard or a workflow page 20 33 32 85
Follow a talk page to keep an eye on conversations there 15 41 30 86
Follow an event page for updates 28 35 23 86
Collect and organize pages that you're interested in 42 25 19 86
Mark a page to remind you to edit later 47 26 13 86
Follow changes to a page you haven't contributed to 34 47 4 85

Are there other reasons why you add pages to your watchlist? (selected answers)

  • "I watch pages that have not yet been created (or have been deleted) to see when or if they are (re)created."
  • "Make sure important pages (like policies) don't change without me noticing."
  • "I'll follow pages that don't have a lot of watchers or contributors, so that I can watch it in case someone vandalizes it and no one notices."
  • "Get updates on topics I don't otherwise follow (like the release of a new album by a band I don't follow on social media)."
  • "I use Twinkle a lot for vandal fighting, and since I have 'add pages I edit' selected in my preferences, I get a lot of pages added. I sometimes unwatch them immediately, but my watchlist does get bogged down with pages I've barely edited at all."
  • "After the categorization feature on watchlist was made available, I watch category pages for newly added/removed pages from categories."

Approximately how many pages are in your watchlists, across all projects?

Answer Respondents Percent
1-100 7 8%
between 100 and 200 4 5%
between 200 and 500 4 5%
between 500 and 1,000 14 16%
more than 1,000 39 45%
too many to estimate 18 21%

How often do you add a page to your watchlist?

Answer Respondents Percent
Multiple times a day 14 16%
Every day 14 16%
A few times a week 34 40%
Once a week 11 13%
Monthly 11 13%
Yearly 1 2%

How often do you check your watchlist?

Answer Respondents Percent
All day 21 25%
A few times a day 35 41%
Once a day 11 13%
A few times a week 8 9%
Once a week 2 3%
Once a month 1 2%
Less than once a month 7 8%

Have you ever added a page to your watchlist because you wanted to watch it, but only temporarily?

Answer Respondents Percent
Yes 67 77%
No 20 23%

For an item on your watchlist, how important is it that the following links or pieces of information are immediately visible on the page?

Question Not at all Important Very important Total N
Name of the page 1 5 81 87
Link to the diff page 11 11 65 87
Date of the edit 7 32 48 87
Time of the edit 15 36 34 85
Link to the history page 16 39 32 87
Size of the edit 24 32 30 86
Moderation actions 32 32 22 86
Link to their user talk 31 39 16 86
Link to user page 23 49 14 86
Link to their contributions 30 44 12 86

When there are new items on your watchlist, how likely are you to take the following actions?

Question Not very likely Somewhat likely Very likely Total N
Go to a diff 7 23 56 86
Go to page history 13 45 28 86
Go to the page 9 51 27 87
Undo or rollback a change 19 46 21 86
Thank contributor (via diff view) 23 45 18 86
Go to their contributions 24 47 13 84
Moderation actions 39 34 12 85
Go to the talk page 43 35 7 85
Go to their user talk page 39 42 4 85
Go to contributor's user page 41 42 2 85

What's one thing that the watchlist does well, that you wouldn't want to change? (selected answers)

  • "Concentrated, centralized location of things I care about with quick links to see the diff."
  • "Collapses associated actions/events from logs (e.g. if you've moderated actions on multiple accounts created that day, the watchlist shows when those accounts were created in a collapsed format)."
  • "Lets me keep tabs on some very old contributions."
  • "Grouping changes ('enhanced RC')"
  • "Options... Many, many options!"
  • "All the links and pieces of information needed are visible on the page, without hovering or clicking on anything."
  • "It is fairly easy to add thousands of files, or remove them. My watchlist peaked at 13,000 before I culled two thirds of it."
  • "High information density."
  • "It's extremely compact."
  • "Highlighting of pages that have changes since they were last visited."
  • "The watchlist is incredibly important, so whatever you do: please be very cautious. That being said: I think with modern technology there should be lots of room for improvement."

"What's one aspect of the watchlist that could be improved? (selected answers)

  • "I want to be able to remove pages directly from the watchlist."
  • "Some things I only care about changes in some moods; others I probably should know about all changes, eg my user page or the deletion policy -- I want to know every change. For Barack Obama, it's probably okay. I'd be great if I could view different importance pages in different ways. Right now they're all muddled together."
  • "Support for: 'I have seen this change and it can be hidden from the view.'"
  • "Built-in diff (click and expand button, and get the diff below the edit entry)"
  • "Remove rollback and block links, makes it too easy to make a mistake"
  • "Watching transcluded pages too when watching a page. English Wikipedia and many other projects do have discussion venues which consist of daily subpages, being able to watch them all in one go without having to watchlist a bunch of them every day would be great."
  • "I would like to go back in time so further back than is now possible. Especially on projects where I don't login very often (like Meta or Outreach) this could be helpful."
  • "e-mail me if the page was NOT altered for <number-of> days."
  • "It would be really useful to have more than one watchlist in a project, and to be able to tag which items I want to watch temporarily."
  • "Wikidata integration in Wikipedia watchlists is a mess. Every time the item of a country is changed I have an enormous list of changes (for each items that are linked to the country), and the important ones get lost."
  • "Being able to watch pages temprorarily. Almost all pages I have on my watchlist are those I am permanently interested in. I would probably watch more pages if I can watch them temprorarily."
  • "Aggregate changes across different days. Diffs are more important than clear distribution on days."
  • "As a less experienced editor, I'm not always sure what each link does immediately. Instruction boxes for the links might be helpful (untill I learn, and click "don't show these anymore")."
  • "multiple watchlists are very badly needed.-- I use a variety of not very satisfactory workarounds"
  • "Cross-wiki watchlists would be very high on my list, but since you're already working on that here's something else ;-) Some pages are more important than others. I'd like to be able to visually mark certain pages or groups of pages. For example: Discussions on my favourite WikiProjects get a green background, Changes to licensing templates on Commons get a red one, all user talk pages get a smaller font apart from the few I'm in active conversation with. Doesn't have to look pretty as long as it's highly customizable."

Rationale[edit]

Many editors are active on more than one wiki. Some edit in multiple languages, and some edit in one language but more than one project. However, many aren't necessarily equally active on all wikis: you might edit one wiki on a daily basis, another a couple of times every week, and a third once a month. Keeping track of all article changes is difficult and unnecessarily cumbersome if you have to go to the specific wiki to do so, instead of simply being able to follow what's happening from the wiki you're currently editing, whether you look at all articles or narrow it down to articles on one wiki. This project was the fourth (tied) most popular item on the 2015 Community Wishlist Survey, with 84 supporting votes.

There's an existing tool called Crosswatch, which was created by a volunteer and is hosted on Tool Labs. Crosswatch isn't being maintained, and currently has several debilitating bugs.

Technical discussion and background[edit]

Approach[edit]

The watchlist is one of the most important contributor tools, and we need to tread lightly -- making the changes that we have in order to have the new functionality, and leaving the rest alone. We shouldn't remove existing functionality from the page.

In order to accommodate the new options, we may have to move the location of some links. We'll post design ideas publicly and ask for comment, specifically to find out if the change negatively impacts somebody's workflow.

Early builds of the feature will be available on a test wiki for people to try out. The goal for this watchlist item is to get the Cross-wiki watchlist into Beta features on every wiki, so that contributors can opt-in to use it. If you have the Beta feature turned on, the cross-wiki watchlist will replace the Special:Watchlist page.

Screenshots[edit]

Screenshots of the existing watchlist functionality:

Some screenshots of Crosswatch, the volunteer-created tool on Tool Labs, posted here for easy reference.

Internal Community Tech team assessment[edit]

Support: Very high, with unanimous support votes.
Impact: Medium. This is very useful for contributors active on multiple projects, which is sizeable but not everybody. Crosswatch already exists as an interim solution on Tool Labs.
Feasibility: TBD, it depends on implementation. We could use Crosswatch as a guide. Crosswatch is written in Python; we could port it to PHP, but the details would be different.
Risk: Medium. The Collaboration team is currently working on cross-wiki notifications, which may or may not change the need for a watchlist, and which may have similar interface needs. It would be great if we could piggyback on their work once cross-wiki notifications are done, possibly by creating "invisible notifications" for watchlist items. This may require changes to core MediaWiki, which are always a challenge to get implemented.
Status: We'll investigate this later this year. This seems like a good project for us, but we'll need some more technical investigation to be sure. We'll want to include a filtering mechanism, so we need design work and a front-end spec. We'll talk more with the Collaboration team about notifications.

See also[edit]

The work here has a long history: