Grants:Project/DannyS712/Create a global watchlist extension

statusselected
Create a global watchlist extension
summaryCurrently, User:DannyS712/Global watchlist.js provides a basic global watchlist function. I propose to convert this into an extension that can be deployed on WMF wikis.
targetGlobal
type of granttools and software
amount$11,000 USD
type of applicantindividual
granteeDannyS712
contact• dannys712.enwiki@gmail.com
join
endorse
created on09:56, 25 January 2020 (UTC)

Project idea edit

What is the problem you're trying to solve? edit

What problem are you trying to solve by doing this project? This problem should be small enough that you expect it to be completely or mostly resolved by the end of this project. Remember to review the tutorial for tips on how to answer this question.
As a user who is active on multiple sites, I want a global watchlist to view recent changes on more than one project at a time. See also Community Tech/Cross-wiki watchlist#Internal Community Tech team assessment.

What is your solution? edit

For the problem you identified in the previous section, briefly describe your how you would like to address this problem. We recognize that there are many ways to solve a problem. We’d like to understand why you chose this particular solution, and why you think it is worth pursuing. Remember to review the tutorial for tips on how to answer this question.
Rather than trying to create a new database table for a global watchlist, my script relies on querying the watchlist on each of the wikis a user has chosen via the api. This queries are performed in parallel, and the results shown as a "global watchlist". However, an extension provides a better infrastructure to run such a global watchlist, including support for message localization, registration of special pages, and interaction with a User object. I plan to convert the config page into a real SpecialPage for settings, storing the user's choices as an option, rather than putting them publicly in the global.js.

Project goals edit

What are your goals for this project? Your goals should describe the top two or three benefits that will come out of your project. These should be benefits to the Wikimedia projects or Wikimedia communities. They should not be benefits to you individually. Remember to review the tutorial for tips on how to answer this question.
Create a functional, integrated global watchlist

Project impact edit

How will you know if you have met your goals? edit

For each of your goals, we’d like you to answer the following questions:

  1. During your project, what will you do to achieve this goal? (These are your outputs.)
  2. Once your project is over, how will it continue to positively impact the Wikimedia community or projects? (These are your outcomes.)

For each of your answers, think about how you will capture this information. Will you capture it with a survey? With a story? Will you measure it with a number? Remember, if you plan to measure a number, you will need to set a numeric target in your proposal (e.g. 45 people, 10 articles, 100 scanned documents). Remember to review the tutorial for tips on how to answer this question.

  1. During the project, I will write the code needed for the extension, test it, and continue to develop it
  2. Once the project is over, the software will remain available for use

Do you have any goals around participation or content? edit

Are any of your goals related to increasing participation within the Wikimedia movement, or increasing/improving the content on Wikimedia projects? If so, we ask that you look through these three metrics, and include any that are relevant to your project. Please set a numeric target against the metrics, if applicable. Remember to review the tutorial for tips on how to answer this question.

Project plan edit

Activities edit

Tell us how you'll carry out your project. What will you and other organizers spend your time doing? What will you have done at the end of your project? How will you follow-up with people that are involved with your project?
I will:

  • Create a bare bones extension to simply load the existing javascript
  • Migrate message translation to use system messages, and pursue translation on translatewiki
  • Convert the settings page into a php SpecialPage
    • Or integrate with the standard preferences page (global watchlist has some unique considerations, like being able to "add" additional site rows)
  • Store settings as a (global) user option, rather than publically in a user's global.js page
  • Provide as a js config variable on the watchlist page the options chosen, to avoid requiring retrieval via api client-side
  • Continue developments where the global watchlist doesn't yet provide everything a normal watchlist does
  • Proper unit testing to ensure ongoing stability
  • Post deployment support to ensure that the transition from script to extension goes smoothly

Budget edit

How you will use the funds you are requesting? List bullet points for each expense. (You can create a table later if needed.) Don’t forget to include a total amount, and update this amount in the Probox at the top of your page too!

Community engagement edit

Community input and participation helps make projects successful. How will you let others in your community know about your project? Why are you targeting a specific audience? How will you engage the community you’re aiming to serve during your project?
I will continue using the User:DannyS712/Global watchlist/Updates newsletter to engage with current users. Once the extension is operational, tech news will be used to communicate the new feature.

Get involved edit

Participants edit

Please use this section to tell us more about who is working on this project. For each member of the team, please describe any project-related skills, experience, or other background you have that might help contribute to making this idea a success.

  • DannyS712 - wrote the script, primary developer

Community notification edit

Please paste links below to where relevant communities have been notified of your proposal, and to any other relevant community discussions. You are responsible for notifying relevant communities of your proposal, so that they can help you! Depending on your project, notification may be most appropriate on a Village Pump, talk page, mailing list, etc. Need notification tips?

Endorsements edit

Do you think this project should be selected for a Project Grant? Please add your name and rationale for endorsing this project below! (Other constructive feedback is welcome on the discussion page).

  • Much requested feature that could make patrolling work significantly easier. RhinosF1 (talk) 19:33, 29 January 2020 (UTC)
  • I'd like to support this proposal. When it comes to MediaWiki farms such as the WMF wikis, where editors cooperate in several places, having a single place where to monitor your watchlist would be very useful. Also per RhinosF1's rationale. As a cross-wiki user, I very much miss a feature like this. —MarcoAurelio (talk) 20:46, 29 January 2020 (UTC)
  • Also per MarcoAurelio. A small question though, how many people would likely benefit from such a project? Jo-Jo Eumerus (talk, contributions) 08:42, 30 January 2020 (UTC)
  • Per the Foundation's medium term plan developments like the global watchlist is the path we want to take. —Aron Man.🍂 edits🌾 12:00, 30 January 2020 (UTC)
  • Converting popular gadgets/user scripts into extensions is a direction I think we should support for a variety of reasons. Bawolff (talk) 05:06, 1 February 2020 (UTC)
  • @Bawolff: Care to elaborate on those reasons? TradeCrawlspaces (talk) 15:14, 8 February 2020 (UTC)
  • The endorsement page isn't really the place to go in depth, so [1] Bawolff (talk) 08:21, 17 February 2020 (UTC)
  • As a CVN member, I use my watchlist frequently for my work. As an SWMT member and a crosswiki user, I like to keep track on crosswiki watchlist using this script. It really a surprise to me that a volunteer developed a global watchlist alone, but an experienced WMF team (Community-tech) could not. It is not just that it wasn't possible and was *too big* project for CT. An alternative way of creating GW was never considered. Anyway leaving those matters aside, this proposal is promising and I can say for certain that DannyS712 is a strong willed, trusted, and experienced developer. He has the commitment to develop GlobalWatchlist further provided he gets the necessary support. I endorse this proposal, per my statement above and per others. A wish from back 2005 is finally going to be fulfilled! Masum Reza📞 01:32, 15 February 2020 (UTC)
  • I'd love to see even more standardization efforts like this. Hjfocs (talk) 15:11, 20 February 2020 (UTC)
  • I am impressed by DannyS712's work on MediaWiki and Wikibase, they seem to be the right person for the job. − Pintoch (talk) 17:27, 20 April 2020 (UTC)
  • I also support this proposal, and believe that DanyS712 would do great with turning his script into an extension for all users to benefit from. — AfroThundr (u · t · c) 04:04, 23 April 2020 (UTC)
  • A global watchlist is a top ten on my wishlist. I support this and hope I can use it when it's done. Ahmadtalk 22:46, 1 May 2020 (UTC)
  • I think this is one of the most requested feature for experienced contributors (who active on several wikis in parallel). Myself strongly miss the global watchlist (and sometimes the multiple watchlist) feature. Samat (talk) 20:26, 17 May 2020 (UTC)
  • This has had clear value to maultiple wiki communities for many years. If they have the ability to organise its development, it would be of immense values, in particular for supporting less-trafficked wikis. T.Shafee(Evo﹠Evo)talk 05:49, 18 May 2020 (UTC)
  • I edit in a few languages and this would be very helpfull to me Dutchy45 (talk) 12:46, 25 November 2020 (UTC)
  •   Support This should have been done a long time ago! --Novak Watchmen (talk) 06:49, 3 January 2021 (UTC)