Grants:Programs/Wikimedia Community Fund/Rapid Fund/Expanding Twinkle Lite functionalities to admins, improving its maintainability and allowing user customisation (ID: 22666838)
This is an automatically generated Meta-Wiki page. The page was copied from Fluxx, the grantmaking web service of Wikimedia Foundation where the user has submitted their application. Please do not make any changes to this page because all changes will be removed after the next update. Use the discussion page for your feedback. The page was created by CR-FluxxBot.
Applicant Details
[edit]- Main Wikimedia username. (required)
Nacaru
- Organization
N/A
- If you are a group or organization leader, board member, president, executive director, or staff member at any Wikimedia group, affiliate, or Wikimedia Foundation, you are required to self-identify and present all roles. (required)
I'm a board member or president of a Wikimedia Affiliate or mission-allied organization.
- Describe all relevant roles with the name of the group or organization and description of the role. (required)
Secretary (Board Member) at Wikimedia Spain
Main Proposal
[edit]- 1. Please state the title of your proposal. This will also be the Meta-Wiki page title.
Expanding Twinkle Lite functionalities to admins, improving its maintainability and allowing user customisation
- 2. and 3. Proposed start and end dates for the proposal.
2024-07-21 - 2024-09-21
- 4. Where will this proposal be implemented? (required)
Spain
- 5. Are your activities part of a Wikimedia movement campaign, project, or event? If so, please select the relevant project or campaign. (required)
Not applicable
- 6. What is the change you are trying to bring? What are the main challenges or problems you are trying to solve? Describe this change or challenges, as well as main approaches to achieve it. (required)
Twinkle Lite (https://es.wikipedia.org/wiki/Wikipedia:Twinkle_Lite) is a widely-used JavaScript (hereafter: JS) tool that Spanish Wikipedia users employ to carry out maintenance tasks. The script works by providing a series of forms that users can fill in, which will, upon submission, perform different actions for the user through the MediaWiki API, making maintenance faster and easier, specially for users who have trouble handling wikicode. As of now, it has seven modules that help with the following tasks: opening consultas de borrado (deletion requests), requesting page protection, requesting speedy deletion, article tagging, making reports, making edit hide requests and user warnings. The idea of the script is based on English Wikipedia's Twinkle but rewritten to adapt to the specific needs of the Spanish Wikipedia. It was also designed to be simpler and the main script's code does not employ JQuery in order to lower the required knowledge of potential contributors.
This project will focus on achieving the following objectives:
- Expand Twinkle Lite's functionalities to administrator tasks, adding modules that will help them carry out maintenance actions more easily in the Spanish Wikipedia.
- Allow user customisation of their experience with the tool
- Improve long-term maintainability of the tool, making it easier for future editors to contribute to the code by refactoring and transcribing the tool into TypeScript (from now on: TS), as well as through the implementation of testing.
From its conception, the code has been publicly available on GitHub (https://github.com/nacaru-w/twinkle-lite) and released under a free license (GPL-3.0). A link to the repository is provided on the tool's main page (https://es.wikipedia.org/wiki/Wikipedia:Twinkle_Lite).
- 7. What are the planned activities? (required) Please provide a list of main activities. You can also add a link to the public page for your project where details about your project can be found. Alternatively, you can upload a timeline document. When the activities include partnerships, include details about your partners and planned partnerships.
The project will be carried out in three phases:
- Improving maintainability of the code: making it easier for future developers to contribute. Subtasks:
- Porting the code from JS to TS in order to catch errors early during the development cycle instead of during execution. This will entail:
- Setting up TS configuration
- Adding type annotations, interfaces and type declarations
- Handling external libraries
- Transcribing the existing modules' code to TS.
- Refactoring part of the code to adapt to TS.
- Adding testing through Jest: this will add an additional layer of error-prevention that will be applied before execution. Subtasks:
- Jest configuration and continuous integration.
- Test cases for key functions
- Mocking and stubbing to mimic Wikimedia API actions
- Porting the code from JS to TS in order to catch errors early during the development cycle instead of during execution. This will entail:
- Enabling customisation: allow users to selectively choose which Twinkle Lite options are available in their UI through a configuration panel. Subtasks:
- Developing twinkle-lite-config module and testing.
- Integrating the module into Wikipedia's UI.
- Introducing admin functionalities for sysop users. Subtasks:
- Deletion-request-closer module: the module will identify deletion request pages and enable an option to close them through a form. Upon submission, the script will perform the necessary administrative actions. The script will then appropriately modify the deletion request page, the article's talk page and the nominated page's main page.
- Block-appeals module: a module that deals with the resolution of block appeals. The script will use the information provided by admins through a form to modify the appealing user's talk page.
- Fast-blocker module: A fast-blocker module was developed by user -sasha- in JS, it will be integrated in Twinkle Lite as part of the new sysop modules and would therefore need to be ported to TS as well.
- Common tasks:
- Developing each module's form.
- Integrating each module into Wikipedia's UI
- Developing Jest testing
- Common tasks:
In order to comply with the requirements of funding for software development projects, a report will be filled in and submitted after each step of the process.
- 8. Describe your team. Please provide their roles, Wikimedia Usernames and other details. (required) Include more details of the team, including their roles, usernames, Wikimedia group, and whether they are salaried, volunteers, consultants/contractors, etc. Team members involved in the grant application need to be aware of their involvement in the project.
I (user: Nacaru) will be carrying out the project as an individual. Except for one punctual contribution, I have been the only developer and maintainer of the tool on the Spanish Wikipedia since its conception.
Among other works, I have created other user scripts such as date-link-remover.js (https://github.com/nacaru-w/date-link-remover), I have developed my own bot (https://es.wikipedia.org/wiki/Usuario:NacaruBot) and I am currently building a webpage for the LGBT Wikiproject (https://github.com/nacaru-w/WikiprojectLGBT-Webpage) using Angular.
I am currently unemployed and would be able to dedicate myself to the task in a full-time capacity.
- 9. Who are the target participants and from which community? How will you engage participants before and during the activities? How will you follow up with participants after the activities? (required)
The main targets of this project are users on the Spanish Wikipedia that carry out maintenance tasks. The tool is already employed by a significant percentage of them (approximately 70% of new user-made board requests are carried out through Twinkle Lite). Feedback is gathered through the tool's talk page and my own talk page. A message on Café-Noticias (eswiki's village pump, news section) specifying version changes is posted after every new version is launched, whose replies also conform feedback.
- 10. Does your project involve work with children or youth? (required)
No
- 10.1. Please provide a link to your Youth Safety Policy. (required) If the proposal indicates direct contact with children or youth, you are required to outline compliance with international and local laws for working with children and youth, and provide a youth safety policy aligned with these laws. Read more here.
N/A
- 11. How did you discuss the idea of your project with your community members and/or any relevant groups? Please describe steps taken and provide links to any on-wiki community discussion(s) about the proposal. (required) You need to inform the community and/or group, discuss the project with them, and involve them in planning this proposal. You also need to align the activities with other projects happening in the planned area of implementation to ensure collaboration within the community.
The proposed activities have come after gathering feedback over the last months through each post on the village pump news section, on the tools' talk page and on my own talk page. It also includes targets that I had set to ensure long-term maintainability of the code and enhance user participation. I frequently communicate with the community about my future intentions for the tool and take user feedback into account during the decision-making process.
- 12. Does your proposal aim to work to bridge any of the content knowledge gaps (Knowledge Inequity)? Select one option that most apply to your work. (required)
Not applicable
- 13. Does your proposal include any of these areas or thematic focus? Select one option that most applies to your work. (required)
Open Technology
- 14. Will your work focus on involving participants from any underrepresented communities? Select one option that most apply to your work. (required)
Not applicable
- 15. In what ways do you think your proposal most contributes to the Movement Strategy 2030 recommendations. Select one that most applies. (required)
Improve User Experience
Learning and metrics
[edit]- 17. What do you hope to learn from your work in this project or proposal? (required)
The project will help me:
- Explore administrators' experiences using the modules aimed at making common sysop tasks simpler.
- Allow me to explore users' UI preferences through the customisation panel.
- Learn how to implement mechanisms aimed at reducing barriers that prevent potential volunteer developers from contributing to the code.
- 18. What are your Wikimedia project targets in numbers (metrics)? (required)
Other Metrics | Target | Optional description |
---|---|---|
Number of participants | 750 | The number above is an estimation based on the number of active users on the Spanish Wikipedia (as of May 27 this is 14994 according to statistics gathered by bot at https://es.wikipedia.org/wiki/Wikipedia_en_espa%C3%B1ol) that might benefit from the result of the tool, assuming 5% of them are administrators or users that carry out maintenance tasks and might potentially benefit from the implementation of the project. |
Number of editors | 1 | I will be the only developer working on the project, but might ask for feedback from users throughout the coding process. This action will not be included in the budget calculation. |
Number of organizers | 1 | As an individual project, I will be the sole person in charge of its organisation. |
Wikimedia project | Number of content created or improved |
---|---|
Wikipedia | 195455 |
Wikimedia Commons | |
Wikidata | |
Wiktionary | |
Wikisource | |
Wikimedia Incubator | |
Translatewiki | |
MediaWiki | |
Wikiquote | |
Wikivoyage | |
Wikibooks | |
Wikiversity | |
Wikinews | |
Wikispecies | |
Wikifunctions or Abstract Wikipedia |
- Optional description for content contributions.
It is difficult to estimate how many articles could benefit from the implementation of the project as it depends on the usage of the tool (which is, as of today, high among active users). The number described represents a personal estimate of the amount of articles that could need the application of some kind of maintenance covered by the tool's modules (10% of total eswiki articles).
- 19. Do you have any other project targets in numbers (metrics)? (optional)
No
Main Open Metrics | Description | Target |
---|---|---|
N/A | N/A | N/A |
N/A | N/A | N/A |
N/A | N/A | N/A |
N/A | N/A | N/A |
N/A | N/A | N/A |
- 20. What tools would you use to measure each metrics? Please refer to the guide for a list of tools. You can also write that you are not sure and need support. (required)
I have not yet come up with a way of gathering tool usage statistics. One way of implementing this could be through the use of WMhashtags (https://hashtags.wmcloud.org/) that would be added in each edit summary, but I would like to find an alternative that does not involve adding characters to every edit summary. If a metric-measuring tool is required for the project to be funded I will implement WMhashtags on the application.
Financial proposal
[edit]- 21. Please upload your budget for this proposal or indicate the link to it. (required)
- 22. and 22.1. What is the amount you are requesting for this proposal? Please provide the amount in your local currency. (required)
3051 EUR
- 22.2. Convert the amount requested into USD using the Oanda converter. This is done only to help you assess the USD equivalent of the requested amount. Your request should be between 500 - 5,000 USD.
3309.08 USD
- We/I have read the Application Privacy Statement, WMF Friendly Space Policy and Universal Code of Conduct.
Yes
Endorsements and Feedback
[edit]Please add endorsements and feedback to the grant discussion page only. Endorsements added here will be removed automatically.
Community members are invited to share meaningful feedback on the proposal and include reasons why they endorse the proposal. Consider the following:
- Stating why the proposal is important for the communities involved and why they think the strategies chosen will achieve the results that are expected.
- Highlighting any aspects they think are particularly well developed: for instance, the strategies and activities proposed, the levels of community engagement, outreach to underrepresented groups, addressing knowledge gaps, partnerships, the overall budget and learning and evaluation section of the proposal, etc.
- Highlighting if the proposal focuses on any interesting research, learning or innovation, etc. Also if it builds on learning from past proposals developed by the individual or organization, or other Wikimedia communities.
- Analyzing if the proposal is going to contribute in any way to important developments around specific Wikimedia projects or Movement Strategy.
- Analysing if the proposal is coherent in terms of the objectives, strategies, budget, and expected results (metrics).