Grants:Project/DannyS712/Create a global watchlist extension
What is the problem you're trying to solve?
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?
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.
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
How will you know if you have met your goals?
For each of your goals, we’d like you to answer the following questions:
- During your project, what will you do to achieve this goal? (These are your outputs.)
- 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.
- During the project, I will write the code needed for the extension, test it, and continue to develop it
- Once the project is over, the software will remain available for use
Do you have any goals around participation or content?
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.
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?
- 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
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!
- Work time: $40/hr (rate based on Grants:Project/Timeless/Post-deployment support#Budget) * 250 hours = $10,000
- Computer equipment needed: $1,000
- Onwiki and offwiki outreach efforts: $0
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.
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
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?
- User:DannyS712/Global watchlist/Updates/Update 5 includes a notification. This was sent 29 January 2020, see Special:Redirect/logid/34865252
- phab:T5525#5791924 comment added to task "Cross-wiki watchlists"
- Email to wikitech-l - https://lists.wikimedia.org/pipermail/wikitech-l/2020-January/093030.html
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)
- 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)