Grants:Project/Rapid/TheresNoTime/reFill 3.0

statusproposed
TheresNoTime/reFill 3.0
We seek funding to majorly overhaul the reFill reference improvement tool, to prevent its partial or complete disabling on the English Wikipedia.
targetEnglish Wikipedia, Swedish Wikipedia, Dutch Wikipedia, German Wikipedia, French Wikipedia, Waray Wikipedia, Cebuano Wikipedia, Russian Wikipedia, Italian Wikipedia, Spanish Wikipedia, Vietnamese Wikipedia, Polish Wikipedia, Simple English Wikipedia, Chinese Wikipedia, Japanese Wikipedia, Romanian Wikipedia, Bengali Wikipedia, Portuguese Wikipedia, Afar Wikipedia, Greek Wikipedia, Tamil Wikipedia, Indonesian Wikipedia, Scots Wikipedia, Arabic Wikipedia, Czech Wikipedia, Wikimedia Commons, Wikimedia Meta-Wiki
start date15 March
end date15 May
budget (local currency)3,000 GBP
budget (USD)4,061.54
grant typeGroup
granteeTheresNoTime
contact(s)• sammy(_AT_)theresnotime.co.uk• wikimedian(_AT_)tamz.in
organization (if applicable)Myself and Tamzin


Project Goal

edit

Briefly explain what are you trying to accomplish with this project, or what do you expect will change as a result of this grant. Example goals include, "recruit new editors", "add high quality content", or "train existing editors on a specific skill".

The reFill script (https://refill.toolforge.org) is a critical tool for maintaining the quality of references on the English Wikipedia and elsewhere, but is desperately in need of extensive improvements, to the extent that the English Wikipedia is actively considering (permalink) disabling it entirely or limiting its usage. Without a commitment of significant developer-hours to fix it, wikis risk being forced to choose between losing an invaluable tool to improve their references and allowing an influx of glitchy edits that even experienced editors often fail to spot the problems with. The funds requested will partly cover living expenses for the relevant time commitment.

Project Plan

edit

Activities

edit

Tell us how you'll carry out your project. What will you and other organizers spend your time doing?

We will start by triaging all known bugs and soliciting reports from end users of potential unreported bugs. We will then review the code thoroughly and assess the scale of the overhaul needed. I, as an experienced project manager, will then draw up a plan to reach our goals. After that it will be nose-to-the-grindstone programming.

How will you let others in your community know about your project (please provide links to where relevant communities have been notified of your proposal, and to any other relevant community discussions)? Why are you targeting a specific audience?

We will notify the English Wikipedia community, in the Village Pump discussion linked above, of our planned overhaul, and will tell them that we understand if they choose to partly or fully prevent usage of the tool for now, but that we hope to make the issue moot in the near future. We will also welcome contributions from any other Python programmers who wish to help.

What will you have done at the end of your project? How will you follow-up with people that are involved with your project?

We will have fixed all major bugs in reFill, with a reach goal of getting to "zarro boogs found". We will notify the English Wikipedia community once reFill 3.0 is live.
While per se beyond the scope of what this grant would cover, I will note that Tamzin and I are prepared to stay on as reFill's maintainers indefinitely.

Are you running any in-person events or activities? If so, you will need to complete the steps outlined on the Risk Assessment protocol related to COVID-19. When you have completed these steps, please provide a link to your completed copy of the risk assessment tool below:

Not applicable.

Impact

edit

How will you know if the project is successful and you've met your goals? Please include the following targets and feel free to add more specific to your project:

  1. Number of total participants
    "Participants", in the sense of programmers, will be two covered by this grant and potentially more contributing to the repository.
  2. Number of articles created or improved
    The number of articles improved is tens of thousands per month. At time of writing, in the RecentChanges table on the English Wikipedia alone, 5,504 edits have used reFill, and that's with many people turning away from it due to its bugs. We anticipate that usage could double or quadruple with the tool improved. And that figure only considers the English Wikipedia. reFill is in use on 25 other wikis (23 Wikipedias, Commons, and Meta).

Resources

edit

What resources do you have? Include information on who is the organizing the project, what they will do, and if you will receive support from anywhere else (in-kind donations or additional funding).

I am an experienced software developer and have professionally led development teams. Tamzin is an experienced Python script developer who has operated bots on the English Wikipedia and Wikidata. We have worked on Wikimedia-related Python projects together in the past.

What resources do you need? For your funding request, list bullet points for each expense:

  • We request funding to partly compensate our cost-of-living expenses for the period of time where we will be committing extensive developer-hours to making reFill 3.0 a reality.

Endorsements

edit
  • Endorse. ReFill is a fantastically useful tool that will fall into "disrepair" under the weight of technical debt without an active maintainer. I trust TheresNoTime and Tamzin to keep it running. Please give them what they need. firefly ( t · c ) 13:49, 10 February 2022 (UTC)
  • Endorse. I am the only currently active maintainer of the reFill project, though I only stepped forward because at the time it was frequently hanging, the original author had become inactive, and there was nobody beyond WMF staff with access to the Toolforge project to troubleshoot it. I do not have the full skillset necessary to maintain it, and new volunteers such as TheresNoTime and Tamzin are sorely needed. There is a fair bit of work to do to get the project back on an even keel, and that may exceed the effort that most volunteers have the time to contribute.
    I make the following observations on the proposal:
    Priorities:
    • Gain owner access to the github repo, toolforge projects, and phabricator project
    • Create or expand system documentation
    • Work out what is what in the Toolforge folders as there seems to be archived code from the PHP-based reFill v1 and other artifacts and it is unclear which files actually need to be there; irrelevant stuff needs to be cleaned out without breaking anything
    • Triage issues logged in Phabricator, github and on the reFill talk page
    • Check compatibility with the latest Python version that toolforge supports (3.9)
    • Update all dependencies to latest versions, dealing with any breaking changes and thoroughly retesting
    • Enable editors to easily switch between the production and test versions of the back-end
    • Establish, test and document a robust release process
    • Coordinate volunteer efforts
    • Fix low hanging fruit issues such as dead url and archive url/date - these are the issues that create the most complaints
    • Fix the gadget that integrates with the Wikipedia editor to reinstate support for non-English versions of Wikipedia
    • Enhance the front-end to support more language versions of Wikipedia, including ones for which the front-end has not been translated
    Most 'bugs' reported are either enhancement requests, or issues that exist with Citoid and Zotero, rather than reFill. Therefore, unless TheresNoTime and Tamzin intend to also enhance Citoid and write Zotero translators, I would caution against them over-promising what can/would be achieved by their efforts solely around reFill.
    In the github repo, a substantial number of issues are historical ones relating to v1 of reFill that was retired in the summer of 2019 and are therefore invalid but need testing to confirm that they are indeed fixed in the current v2 before closing.
    Calling the new effort v3 may be inappropriate unless this is to be a rewrite or introduce significant new functionality; If it was me I would call it v2.1.
    Curb Safe Charmer (talk) 10:26, 14 February 2022 (UTC)
  • Endorse. This would be appreciated by a lot of editors. Qwerfjkl (talk) 21:58, 20 February 2022 (UTC)
  • Endorse This is exactly the sort of project community funding should support, and this proposal isn't asking for much, at all. This tool does the heavy lift of formatting bare URLs, thereby alleviating the damage done by link rot. This is a tool which can be used by anyone, magnifying the useful impact potential of funding fixes and updates. Chris Troutman (talk) 17:07, 27 February 2022 (UTC)
  • * Pppery * it has begun 17:49, 27 February 2022 (UTC)
  • Endorse A widely used tool, in need of some TLC to bring up to date and allow for greater accuracy in cite generation. Having a number of maintainers available will keep it operational. Keith D (talk) 23:01, 27 February 2022 (UTC)
  • Endorse reFill is a crucial tool, and TNT and Tamzin are skilled developers :) EpicPupper (talk) 13:39, 4 May 2022 (UTC)

Participants

edit
  • Volunteer As I'm listed as the current maintainer of reFill, I should be able to help with this effort. I feel I know what needs doing, even if I don't have all the skill set needed to do it, so I can be involved in working out the 'what', if not necessarily the 'how'. Curb Safe Charmer (talk) 14:46, 4 April 2022 (UTC)