Toolhub/Hackathon 2022
The Wikimedia Hackathon 2022 is a free event to work together on technical projects, learn new skills, and meet other technical contributors. It will be held online May 20-22, 2022.
Toolhub is a community managed catalog of software tools used in the Wikimedia movement. Technical volunteers can use Toolhub to document the tools that they create or maintain. All Wikimedians can use Toolhub to search for tools to help with their workflows and to create lists of useful tools to share with others.
This page will be updated with additional information during the week leading up to the Hackathon. Be sure to check back in!
And of course, if you have any suggestions for tasks and improvements, feel free to add them here.
How to participate
There are no prerequisites to participate. Everyone is welcome, whether you are a long-time technical contributor, a curious newcomer, or anything in between. We do ask you to follow the Code of Conduct for Wikimedia's Technical Spaces and Friendly Space Policy.
Here are some helpful resources if you are new to Toolhub:
- Our user manual
- Our Phabricator workboard, where we track the work we do
- Our Gerrit code repository
- How to contribute: quick-start guide for technical contributors
Sessions
A 50-minute introductory session will be held in the Infrastructure Tools Room during the Hackathon. The session will be held at two different times, you can choose the one that best fits your timezone:
In these sessions, you can learn about the Toolhub project and how you can use it to publicize tools your work on bots, web services, user scripts, gadgets, complex templates, and Lua modules to other Wikimedians.
Edit Toolhub records
ToolInfo records are at the heart of Toolhub. They contain the available information about a particular tool and are helpful in making searching and filtering for relevant tools more efficient.
The majority of records in Toolhub are derived from toolinfo.json data originally published for Hay's Directory, and it's 1.0.0 toolinfo.json schema. This means that there are many gaps that the community can start working to fill in about tools that they use.
The recently added Annotations feature allow anyone to populate a number of informative properties about each tool, no matter how the main toolinfo record made it into the catalog. These new attributes include:
- API URL
- Translate URL
- Bug tracker URL
- User docs URL
- Developer docs URL
- Feedback URL
- Privacy policy URL
- Icon
- Tool type
- Available UI languages
- For wikis
- Deprecated
- Experimental
- Replaced by
Consult the toolinfo schema file for details about these fields, including suggested values. |
How to Edit
- Navigate to Toolhub's search page
- Search for the tool you want to edit, or select any tool
- Click on the tool card:
- Click on the Edit button:
- Fill in as many fields as you can and publish your changes:
- Done!
Technical Contributions
We welcome technical contributions. On the Hackathon 2022 workboard, you will find several tasks with the "Toolhub" tag in the "Hacking Projects" and "Projects for Newcomers!" columns. The tasks in the "Hacking Projects" column require some previous knowledge of JavaScript and front-end development.
You are also welcome to choose tasks from the main Toolhub workboard, or propose your own improvements and bug fixes based off your user experience when interacting with Toolhub.
Account Setup
If you have contributed to Wikimedia projects before, you can probably skip this section. If not, you will need to:
- Create a developer account
- [[mw:Special:MyLanguage/Phabricator/Help|Set up a Phabricator account]
- Set up Git and Gerrit
Development environment setup
Set up your development environment by following the instructions here.
Contribution workflow
- Clone the Toolhub project using the "Clone with commit-msg hook" option
- Build and run the containers (see "Development environment setup" above)
- Make some changes to the code
- Make sure the tests run successfully
$ make test
- Reset package-lock.json, unless you have actually specified new Node dependencies to be installed
$ git checkout package.json
- Commit your changes
$ git commit --all
- Format your commit message according to the guidelines
- Submit your changes (patch set, in Git lingo) for review
$ git review -R
- Someone reviews your patch:
- All good? Your patch set gets a +2 and gets merged. Success! (But be patient if your code isn't reviewed right away)
- Reviewers request changes? Don’t despair, this is the most likely scenario. You amend your commit and submit a new patch set. Detailed instructions on how to this can be found at the end of the Gerrit Tutorial tl:dr
Other ways to contribute
Anyone is welcome to use the demo server to do things with the app and file bug reports/feature requests about things that seem more difficult than they should be or confusing.
Questions and Feedback
Please leave your questions and feedback on the talk page. This is the page that we will be monitoring and where your chances of getting a quick reply are the highest. :)
If you want to discuss a specific task, please leave your questions and comments in Phabricator.