Jump to content

Wikimedia Hackathon 2023/Showcase

From mediawiki.org

 🥳 Wikimedia Hackathon 2023 Showcase & Project list 🥳

Date & Time: Sunday, May 21st, from 2:30 - 4:30 pm
Facilitators: @siebrand and @Nes
Venue: MachineWorks (Main hacking room)
Phabricator task: For discussion & more information on presenting see Phabricator ticket: https://phabricator.wikimedia.org/T334502 

Participants will get to showcase their hackathon projects, and we will close out the event and say goodbye. Presentations are limited to 50 total, with 2 minutes each.

Demo template
Interested in presenting? Fill in the section below with your details in this etherpad: https://etherpad.wikimedia.org/p/wmh2023-Wikimedia_Hackathon_2023_Project_Showcase

# Title:
Phabricator task:
Brief (2-3 lines):
Relevant links:
Contact(s):
Status (e.g., early concept, ready for beta deployment, production, etc.):
Okay with being recorded: Yes/No

#1 Title: RealMe
Phabricator task: T324535 T322717
Brief (2-3 lines): It is now possible to mark links to Wikimedia user pages as verified on your Mastodon profile (or other software using rel=me links)
Relevant links: https://wikis.world/@taavi https://www.mediawiki.org/wiki/Help:Extension:RealMe
Contact(s): Taavi and Kunal
Status (e.g., early concept, ready for beta deployment, production, etc.): production
Okay with being recorded: Yes

#2 Title: Toolhunt (Now With Searching!)
Phabricator task: https://phabricator.wikimedia.org/T332910
Brief (2-3 lines): Toolhunt now has a search bar.  Users will no longer be at the mercy of random chance.
Relevant links: https://docs.google.com/presentation/d/1agnnK9DFCOhUV5RA_EujSZlfKOnp2slUj3ORlneg9c8/edit#slide=id.g24820764585_0_0  https://toolhunt-staging.toolforge.org/#/  https://toolhunt.toolforge.org/#/
Contact(s): @NicoleLBee
Status (e.g., early concept, ready for beta deployment, production, etc.): ready for deployment
Okay with being recorded: Yes

#3 Title: Accordion component for Codex DS
Phabricator task: https://phabricator.wikimedia.org/T326665
Brief (2-3 lines): The Accordion component for the Codex Design System offers a flexible way to organize and present content, supporting multiple sections with customizable headers and content.
Relevant links: https://drive.google.com/file/d/1SWupASwHkARi25apJtwi_KD2D5ZjUXA5/view?usp=share_link (recording)
Contact(s): Szymon Świergosz (@Sswiergosz)
Status (e.g., early concept, ready for beta deployment, production, etc.): MVP
Okay with being recorded: Yes

#4 Title: Improving Depictor 
Phabricator task: https://phabricator.wikimedia.org/T337173
Brief (2-3 lines): Depictor now preloads images to speed up the depicting process and locks the user interface when making an edit. Also a little preview of things to come.
Relevant links: https://hay.toolforge.org/depictor/
Demo: https://www.youtube.com/watch?v=XptuXknDt2Y
Contact(s): Hay Kranen (Husky)
Status (e.g., early concept, ready for beta deployment, production, etc.): production
Okay with being recorded: Yes

#5 Title: Modernizing MultimediaViewer codebase
Phabricator task: https://phabricator.wikimedia.org/T337030 and https://phabricator.wikimedia.org/T337102
Brief (2-3 lines):
    Use packageFiles and require to import JS.
    Use ES6 features such as classes, arrow functions, const/let, string templates.
Relevant links: 
    https://phabricator.wikimedia.org/F37026769 and 
    https://gerrit.wikimedia.org/r/c/mediawiki/extensions/MultimediaViewer/+/921502/12/resources/mmv/ui/mmv.ui.progressBar.js
Contact(s): simon04 and Jon
Status (e.g., early concept, ready for beta deployment, production, etc.): patches merged/pending
Okay with being recorded: Yes

#6 Title: MCR integration for TemplateData
Phabricator task:  T56140
Brief (2-3 lines): Proof-of-concept of using a dedicated JSON content slot for storing TD
Relevant links: https://docs.google.com/presentation/d/1xdTyoxDoEcY5pJpSrUqu59ZgszJAH8GY3hiGkx0XsmU/edit?usp=sharing (recordings)
Contact(s): Máté Szabó (@mszabo)
Status (e.g., early concept, ready for beta deployment, production, etc.): proof-of-concept
Okay with being recorded: Yes

#7 Title: Code for adding OpenStreetMap IDs to Wikidata
Phabricator task: T337180
Brief (2-3 lines): There are 2 million wikidata tags on objects in OpenStreetMap.
Wikidata now has properties for OSM relation, way and node IDs. These properties need to be populated with OSM IDs.
I'm working on software to generate a list of IDs to load into Wikidata.
Relevant links: https://edwardbetts.com/wmhack/  https://www.wikidata.org/wiki/Property:P11693
Contact(s): Edward Betts (User:Edward)
Status (e.g., early concept, ready for beta deployment, production, etc.): proof-of-concept
Okay with being recorded: Yes

#8 Title: Central CollabPad - first steps
Phabricator task: https://phabricator.wikimedia.org/T337124
Brief (2-3 lines): Working together in VE with other authors at the same time is possible with CollabPad. But the installation is not trivial. A central installation to allow an easy usage for everybody could be a solution. For this the CollabPad would need to import external wiki pages. See how far we got in the screencasts in the ticket! :)
Relevant links: https://bawolff.net/collabpad/w/index.php/Special:CollabPad
Contact(s): lilients, bawolff
Status (e.g., early concept, ready for beta deployment, production, etc.): proof of concept
Okay with being recorded: Yes

#9 Title: Migrating VideoCutTool from MongoDB to PostgreSQL
Phabricator task: https://phabricator.wikimedia.org/T330755
Tool: https://videocuttool.wmcloud.org/ (Login to use the tool - On going bug, fixed - Yet to be deployed)
Document: https://commons.wikimedia.org/wiki/Commons:VideoCutTool
Brief (2-3 lines): MongoDB is not approved by the OSI as an open source license, so moved to PostgresSQL 
Relevant links: https://gerrit.wikimedia.org/r/c/labs/tools/VideoCutTool/+/896129/
Contact(s): @Gopavasanth (team: Sohom Datta, Punith and Varun)
Status (e.g., early concept, ready for beta deployment, production, etc.): Merged (Not deployed yet)
Okay with being recorded:  Yes

#10 Title: Link to Special:Diff in default summary for undo edits
Phabricator task: https://phabricator.wikimedia.org/T333113
Brief (2-3 lines): The default edit summary for an undo edit specifies the revision number that is being reverted, but that number used to be shown as plain text in the edit summary and page history. The revision number is now a wikilink to [[Special:Diff]], so it can be clicked to navigate to the original edit. This had already been done locally on the Portuguese wikipedia, now it is implemented directly in core.
Relevant links:https://pt.wikipedia.org/w/index.php?diff=58875945
Contact(s): Alberto Leoncio, Waldir
Status (e.g., early concept, ready for beta deployment, production, etc.): merged, deployment next week
Okay with being recorded: Yes

#11 Title: Provide local user id via meta=globaluserinfo
Phabricator task: https://phabricator.wikimedia.org/T330230
Brief (2-3 lines): It is currently possible to query the Global ID of an account via the API from the Local ID of a wiki, however the reverse was not possible.
Relevant links:
Contact(s): Alberto Leoncio
Status (e.g., early concept, ready for beta deployment, production, etc.): merged, deployment next week
Okay with being recorded: Yes

#12 Title: Telegram announcements bot for Hackathons, etc
Phabricator task: https://phabricator.wikimedia.org/T337083
Brief (2-3 lines): An automated bot for sending out announcements to selected Telegram group chat.
Relevant links: https://github.com/wmhack2023/wmhack2023.github.io/tree/main/_telegram
Contact(s): Dimitrios Ringas, Spyridon Eftychios Kokotos (aka. Spyros)
Status (e.g., early concept, ready for beta deployment, production, etc.): Production
Okay with being recorded: Yes
Presentation link: https://docs.google.com/presentation/d/19B9tYglBAFvzjiPJ2vFoiHVaTJrcBKp_1iPJBBfDetM/edit?usp=sharing

#13 Title: Lutz, an editor gender gap vizualization tool
Phabricator task: https://phabricator.wikimedia.org/T337181
Brief (2-3 lines):
Relevant links: https://lutz.toolforge.org/
Contact(s): Chico Venancio
Status (e.g., early concept, ready for beta deployment, production, etc.): beta
Okay with being recorded: Yes

#14 Title: Spamblacklist improvements
Phabricator task:
Brief (2-3 lines): We made process of blocking spam much more user-friendly
Relevant links: https://en.wikipedia.org/wiki/MediaWiki:Spam-blacklist vs https://phab.wmfusercontent.org/file/data/i4mqe3me5vo34wrbxf4b/PHID-FILE-fhkn3hlxayghivpowkhi/grafik.png and https://phab.wmfusercontent.org/file/data/m6djby77wfrzj7uuf7f5/PHID-FILE-mnfvq6l5qtqqxeprgtgr/grafik.png
Contact(s): Ladsgroup (Amir Sarabadani)
Status (e.g., early concept, ready for beta deployment, production, etc.): Ready for beta deployment
Okay with being recorded: Yes

#15 Title: Interactive scribunto templates (Monstranto)
Phabricator task: https://phabricator.wikimedia.org/T336632
Brief (2-3 lines): Experiment with letting lua templates make animated SVGs
Relevant links: https://www.mediawiki.org/wiki/Extension:Monstranto http://bawolff.net/monstranto/index.php/Module:Circle
Contact(s): Bawolff
Status (e.g., early concept, ready for beta deployment, production, etc.): Proof of concept
Okay with being recorded: YES

#16 Title: Wikipedia section & discussion summarizer 
Phabricator task: https://phabricator.wikimedia.org/T336692
Brief (2-3 lines):  We developed user-script (s) to create sumamries of Wikipedia sections. At this point the script uses ChatGPT chat-completion endpoint. We also ported it to support Discussion pages.  
Relevant links: https://github.com/tonythomas01/wikipedia-section-summaries/tree/main
Demo: https://www.youtube.com/watch?v=mja1C6FnWes
Contact(s): @Alexey_Skripnik, @01tonythomas, @Tgr 
Status (e.g., early concept, ready for beta deployment, production, etc.): Ready for use via user-script. 
Okay with being recorded: Yes

#17 Title: Wikipedia Preview browser bookmarklet and user script
Phabricator task:
Brief (2-3 lines): Wikipedia Preview is a tool developed by the Inuka team that shows Wikipedia article previews upon hovering on Wikipedia links. But it relies on webpage owners to include a script on their pages. This browser bookmarklet and user script let users use this tool on any webpages they would like to.
Relevant links: https://gitlab.wikimedia.org/diegodlh/wikipedia-preview-extension
Contact(s): @DiegodlH
Status (e.g., early concept, ready for beta deployment, production, etc.): early concept
Okay with being recorded: Yes

#18 Title: Graceful webservice restart
Phabricator task: https://phabricator.wikimedia.org/T337182
Brief (2-3 lines): I wrote a new patch to make `webservice restart` restart Toolforge tools more gracefully under Kubernetes.
Relevant links: https://gerrit.wikimedia.org/r/c/operations/software/tools-webservice/+/921620
Contact(s): Lucas Werkmeister
Status (e.g., early concept, ready for beta deployment, production, etc.): partially reviewed, not yet merged
Okay with being recorded: Yes

#19 Title: VisualEditor toolbar search
Phabricator task: https://phabricator.wikimedia.org/T66905
Brief (2-3 lines): Adds an easily-accessible search popup to VisualEditor that gives quick access to most actions
Relevant links: https://en.wikipedia.beta.wmflabs.org/wiki/Zebra?veaction=edit (then type `\` or `cmd/ctrl + shift + p`) or https://www.youtube.com/watch?v=No3KeWNFVGA
Contact(s): David Lynch
Status (e.g., early concept, ready for beta deployment, production, etc.): merged, deployment next week
Okay with being recorded: Yes

#20 Title: Foolproof Terminology gadget in Translatewiki
Phabricator task:
Brief (2-3 lines): The terminology gadget had a flaw that let users break the rendering of the Translate UI; now that doesn't happen any more.
Relevant links:https://translatewiki.net/wiki/Project:Terminology_gadget
https://translatewiki.net/w/i.php?title=Special:Translate&group=mediawiki&language=nb&filter=!translated&action=translate&uselang=en
Contact(s): Jon Harald Søby
Status (e.g., early concept, ready for beta deployment, production, etc.): In production
Okay with being recorded: Yes

#21 Title: Redesigning Special:Notifications with the Codex design system
Phabricator task: https://phabricator.wikimedia.org/T337178 
Brief (2-3 lines): 
Relevant links: https://www.figma.com/proto/pszmvYHcXK1ais8zrP445T/Notifications---Hackathon-2023-(T328706)?page-id=2649%3A11132&type=design&node-id=2859-21379&scaling=min-zoom&starting-point-node-id=2859%3A27415&hide-ui=1
Contact(s): Bárbara Martínez Calvo (@BMartinezCalvo)
Status (e.g., early concept, ready for beta deployment, production, etc.): early concept
Okay with being recorded: Yes

#22 Title: Porting Special:Notifications to Codex
Phabricator task: https://phabricator.wikimedia.org/T337178 
Brief (2-3 lines): Rebuild the Special:Notifications page with Vue, Codex and Pinia
Relevant links: https://patchdemo.wmflabs.org/wikis/ac57b1991f/wiki/Special:Notifications
Contact(s): Roan Kattouw (Catrope), Moriel Schottlender (mooeypoo), 
Status (e.g., early concept, ready for beta deployment, production, etc.): early concept
Okay with being recorded: Yes

#23 Title: New-Q5
Phabricator task: https://phabricator.wikimedia.org/T337005
Brief (2-3 lines): Form to neatly add or update a person's Wikidata-item date of bith and/or date of death
Relevant links: https://new-q5.toolforge.org/
https://github.com/VDK/new-q5
Contact(s): 1Veertje
Status (e.g., early concept, ready for beta deployment, production, etc.):
 in production   
Okay with being recorded: Yes

#24 Title: Phixing Phabricating Phings
Phabricator task: https://phabricator.wikimedia.org/T336167
Brief (2-3 lines): Is Phabricator dead? 
Relevant links: https://we.phorge.it/w/planning_meetings/wikimedia_hackaton_2023_athens_code_sprint/?__print__=1
Contact(s): @bozzy Telegram
Status: ready for production as usual
Okay with being recorded: Yes

#25 Title: Right-to-left support in Wikistats
Phabricator task: https://phabricator.wikimedia.org/T251376
Brief (2-3 lines): Wikistats 2 ( https://stats.wikimedia.org ) doesn't support showing the user interface in right-to-left languages. We (Nick Gkountas and Amir Aharoni) tried to fix it, and we hope it gets deployed :)
Relevant links:
Contact(s): Amir E. Aharoni (User:Amire80, @amire80)
Status (e.g., early concept, ready for beta deployment, production, etc.): Submitted to Gerrit, tested on our local machines, waiting for review and deployment
Okay with being recorded: Yes

#26 Title: Evaluating chat bridges
Phabricator task: https://phabricator.wikimedia.org/T323845
Brief (2-3 lines): Chatrooms like #wikimedia-hackathon span multiple networks (IRC, Telegram, Matrix) but usually the message conversion quality is not great. We created a checklist for evaluating chat bridges (tools to translate messages between networks) and evaluated potential options for improving the current setip.
Relevant links: https://docs.google.com/document/d/11h0O6c3xEOaDAehPZO4U8Qim843pTT6RxWUaGaIIAQA/edit (t2bot.io), https://docs.google.com/document/d/1YXC5-NX0KojYRQl7x4MfBrECAv6YloPW2kOkX8NGJZY/edit (template)
Contact(s): User:Tgr, User:Waldyrious
Status (e.g., early concept, ready for beta deployment, production, etc.): documentation-only project. One more bridge to evaluate.
Okay with being recorded: Yes

#27 Title: Wikidata Facet Browser
Phabricator task: https://phabricator.wikimedia.org/T337000
Brief (2-3 lines): How might we allow ordinary users to create interactive Wikidata Query visualizations (like interactive graphs) without knowledge of SPARQL?
Relevant links: SLIDES - https://docs.google.com/presentation/d/1v5ofGjb6fPRFQqB-oK-1t3mmeeEy0DZQnM9BCiey76w/edit?usp=sharing
Contact(s): Andrew Lih (User:Fuzheado)
Status (e.g., early concept, ready for beta deployment, production, etc.): prototype script https://public-paws.wmcloud.org/User:Fuzheado/wikidata-facet-browser/facetbrowser.ipynb
Okay with being recorded: Yes/No YES

#28 Title: IP Masking temporary account contributions
Phabricator task: https://phabricator.wikimedia.org/T337089
Brief (2-3 lines): View edits from temporary counts for a given IP address
Relevant links: Demo video: https://www.youtube.com/watch?v=Qo5ufHouL7s
Contact(s): Tchanders
Status (e.g., early concept, ready for beta deployment, production, etc.): Early concept
Okay with being recorded: Yes/No No (they are ok with being recorded [@debt])

#29 Title: Improvements to the MediaWiki installation experience using install.php
Phabricator task: N/A
Brief (2-3 lines): Installing MediaWiki has never been easy. In particular, the install.php maintenance script can allow this process to be scriptable, but it has several subtle issues. I've worked in improving the script's default options and error messages to be more helpful, as well as various documentation pages in mediawiki.
Relevant links:
    Code changes: 1) https://gerrit.wikimedia.org/r/c/mediawiki/core/+/133222 (from 2014!), 2) https://gerrit.wikimedia.org/r/c/mediawiki/core/+/921626, 3) https://gerrit.wikimedia.org/r/c/mediawiki/core/+/921679
    Documentation changes: https://www.mediawiki.org/w/index.php?title=Special:Contributions/Waldyrious&target=Waldyrious&offset=20230521235959&limit=34
Contact(s): Waldir
Status (e.g., early concept, ready for beta deployment, production, etc.): Code changes are made, documentation changes are live
Okay with being recorded: Yes

#30 Title: MediaWiki Metal - "bare metal" framework for local development environment
Phabricator task: https://phabricator.wikimedia.org/T333678
Brief (2-3 lines): ~40 commits, ~20 merge requests. Got working on Debian/Ubuntu and macOS. Supports Apache and php built-in server. Started working on homebrew formula for installing. Added a Status command for showing software installed / to be installed. A config file and commands for showing how the local environment is set up. 
Relevant links: https://asciinema.org/a/Z6AG7SQgxA3kPMWNWnAR7s1bM 
 https://gitlab.wikimedia.org/kharlan/mediawiki-metal 
Contact(s): Kosta Harlan, Jack Gleeson
Status (e.g., early concept, ready for beta deployment, production, etc.): early concept
Okay with being recorded: Yes

#31 Integrating frontend and backend web app on toolforge:
Brief (2-3 lines):  This is documentation descrbing the way to integrating frontend and backend web app on Toolforge.
Relevant links: https://wikitech.wikimedia.org/wiki/User:Jayprakash12345/Integrating_frontend_and_backend_web_app_on_toolforge
Contact(s): User:Jayprakash12345
Status: Deployment config tested
Okay with being recorded: Yes

#32 Title: Kiwix offliner
Phabricator task: https://phabricator.wikimedia.org/T324866
Brief (2-3 lines): Updated Kiwix to use non-deprecated APIs to allow it to generate Wikipedia offline snapshots even after certain deprecated WMF services are turned off later this year
Relevant links:
Contact(s): User:cscott
Status (e.g., early concept, ready for beta deployment, production, etc.): patches in github
Okay with being recorded: Yes


=== Projects that do not need to be shown at the showcase, but are just listed for the record later ===

Title: Play with Toolforge build service / buildpacks
Phabricator task: https://phabricator.wikimedia.org/T337040
Brief: I experimented with the new alpha/beta Toolforge build service, explored how it works, updated the documentation a bit, filed some tasks.
Contact(s): Lucas Werkmeister (WMDE)

Title: Two Wikibase fixes
Phabricator task: https://phabricator.wikimedia.org/T336956 https://phabricator.wikimedia.org/T337081
Brief: I worked on two Wikibase issues that cropped up. Some other WMDE people did as well.
Contact(s): Lucas Werkmeister (WMDE)

Title: Minor tool fixes
Links: https://phabricator.wikimedia.org/T337118 https://gitlab.wikimedia.org/toolforge-repos/versions/-/merge_requests/3
Brief: I submitted tiny fixes to Toolhub and the Versions tool.
Contact(s): Lucas Werkmeister (WMDE)

Title: An open and fast Sparql API endpoint to query Structured Data on Commons
Links: https://qlever.cs.uni-freiburg.de/wikimedia-commons https://github.com/ad-freiburg/qlever/issues/985
Brief: I asked the developers of QLever to load the SDC data to QLever, and they did! Also, QLever has progressed a lot recently (full Sparql 1.1 grammar, SERVICE for federated queries etc.) so you should check it out.
Contact(s): TuukkaH

Title: Native rendering for SVG (wishlist item)
Links:https://gerrit.wikimedia.org/r/921379 https://mastodon.social/@TheDJ/110400660105740578
Brief: Introduce a MediaWiki configuration option to serve SVGs directly to the browser instead of thumbnailing them to PNG. Mastadon post a screenshot of the new Picture in Picture mode that is going to be possible in Chrome and video.js
Contact(s): TheDJ
    
Title: Converting TMH to ES6 and updating our version of video.js to 8.3.0
Links:https://gerrit.wikimedia.org/r/c/mediawiki/extensions/TimedMediaHandler/+/921490
Brief: Updated to the latest version of video.js and convert the plugin we use to ES6
Contact(s): TheDJ

Title: Ship .gitmessage with MediaWiki core, skins and extensions
Αλ;λ/: https://gerrit.wikimedia.org/r/c/mediawάαiki/core/+/921673 https://phabricator.wikimedia.org/T337179 
Brief: Add a .gitmessage template for more consistent and informative commit messages.
Contact(s): Kosta Harlan (kostajh) ά

Title: Improved documentation on data modeling for Structured Data on Commons
Links: https://commons.wikimedia.org/wiki/Commons:Structured_data/Modeling (and some new subpages, some still very rough) / more explicit to do list at https://phabricator.wikimedia.org/T335910
Brief: More precise documentation, also in preparation for more Lua-driven Infobox templates for Commons files which can be used by e.g. batch upload tools
Contact(s): User:Spinster

Title: https://phabricator.wikimedia.org/T336999
Links: https://github.com/kcvelaga/wikidb_start_end
Brief: The idea is to create a structured list of when a Wikimedia project is created, and if applicable, closure date as well.
Contact(s): User:KCVelaga (WMF)

=== End projects that do not need to be shown at the showcase, but are just listed for the record later ===
* https://www.mediawiki.org/wiki/Extension:HTMLTemplates