Toolhub/Progress reports/2022-12-16
Report on activities in the Toolhub project for the 7 weeks ending 2022-12-16.
At long last, an update!
[edit]As the 2022 calendar year nears its end, we are delivering a long overdue update on the work of the Toolhub project. Our last report was written over 5 months ago. In that time the taxonomy research project and its community feedback period completed their work. The developers on the team were assigned to other work for several months. We started work in earnest on Toolhub again around 2022-11-01. Read on for more on what we have been doing since then.
Controlled vocabulary and taxonomy for Toolhub
[edit]Tricia started this major feature off with a research project followed by collecting community feedback with support from Komla and others. The collection of attributes and controlled vocabulary produced by that phase of the project were then implemented in the application itself. This involved backend work of extending the backend data model and API output, adding search facets for the new fields, and adding search filters for the new facets. Next we updated toolinfo details screens to show the new fields and extended the editing UI to allow populating them. Finally we setup localization for the values in the UI and linked the values from the detail screens back to drill down searches.
New toolinfo detail screen and editing layout
[edit]We redesigned the toolinfo detail screen as part of the work of adding the new controlled vocabulary fields there and connecting them back to drill down searches. The new design lays out the data in several sections. Each detail page starts with the basic information about the tool: icon, title, subtitle, description, URL, authors, and source code repository. Next come the status indicators for tools which have been marked as experimental or deprecated. The attributes of the tool are listed next: tool type, for wikis, audiences, content types, tasks, subject domains, available ui languages, keywords, and origin. Usage related URLs include the tool's URL (duplicated from the basic section) and alternate URLs. The collection is rounded out with URLs for the tool's api, user docs, feedback, privacy policy, and bugtracker. Information helpful for contributing to the tool is comprised of the tool's license, source code repository (duplicated from the basic section), translation URL, technologies used, and developer documentation URL. The final section is for more information that did not fit nicely into the prior sections: OpenHub project ID, a bot username used by the tool, organizations that sponsored the tool's development, and a Wikidata QID for the tool.
This same set of sections (basic information, attributes, usage, contributing, and more information) have been used in redesigning the edit forms for both the core toolinfo record and the associated community annotations layer.
New toolinfo edit button behavior
[edit]When we introduced editing of the community annotations layer we thought that we could keep things simple for everyone by only having a single edit button that would be "smart" about deciding if you should be editing only the community annotations or the combination of the community annotations and core toolinfo record. JJMC89 discovered that this design actually meant that there were some changes which could be made by the community that could not be corrected by the owner of the toolinfo record.
This bug has been fixed by introducing more complex behavior for the edit button. If you only have permission to edit the community annotations things will look and feel the same as before. If however you also have permission to edit the core toolinfo record, clicking the edit button will now present a menu allowing you choose between editing the core toolinfo or the community annotations.
Upgraded Elasticsearch python client libraries
[edit]The Search team completed their project to upgrade the production Elasticsearch cluster used by Toolhub to version 7.10.2 on 2022-09-29. With this milestone reached we were able to merge several follow up changes to complete Toolhub's migration to an Elasticsearch 7.x optimized client.
- dev: Upgrade elasticsearch container to 7.10.2
- dev: update elasticsearch python dependencies for 7.x compatibility
Other features added
[edit]- T305891: Hide annotation fields that will not be visible on the tool's card or details
- T306536: Reorder facets on search result screen to something more logical
- T306534: Searching the hub should be more discoverable
- T296768: Provide explicit "Browse" button
- Move Toolhub branding to v-app-bar
- Change header color to match logo's blue
Bug fixes
[edit]- T324359: Different import sources causing reverts multiple times a day fixed by crawler: Increase toolinfo.json read timeout
- T308939: Navigating directly to an edit link has all blank fields
- T308936: Revert links do not do anything fixed by ui(patrolling): Reduce confusion with patrolling actions
Development fixes
[edit]- T300418: Improve Javascript test coverage to >=85% and enforce same for future patches
- dev: update caniuse-lite to latest version
- dev: remove flakehell
- dev: Update poetry to v1.3.1
- dev: update python lint and test dependencies
- dev: Update to Bullseye and Python 3.9
Outreachy Round 25 project underway
[edit]Hannah and Nicole are Outreachy Round 25 interns working on building a tool called "Toolhunt". Slavina, Damilare, and RoySmith are co-mentoring this project. You can follow the planning and implementation of Toolhunt on Phabricator. Work under the Outreachy internship will continue through March 3, 2023.
Wrap up
[edit]With all the work described above done the team is planning on a quiet end to 2022 of time off with friends and family. We will be back in January 2023 to start the work of promoting these new features with the larger Wikimedia community. We also hope to announce additional focused work with a sub-community of Wikimedians to increase their usage of Toolhub. Look for more updates in 2023!