Toolhub/Progress reports/2022-01-07

From Meta, a Wikimedia project coordination wiki

Report on activities in the Toolhub project for the three weeks ending 2022-01-07.

Functional maintenance environment invented[edit]

Tracked in Phabricator:
Task T290357

Services like Toolhub often need a way for maintainers to run maintenance scripts and manual jobs. For MediaWiki and many other services, a group of maintenance servers are maintained specifically for this purpose. Some tasks for Toolhub can be done from these servers, but others really need a different environment that is not currently supported. Specifically Toolhub's Python code and supporting libraries are distributed as a Docker container and there is no facility for running these containers on the current maintenance servers.

While discussions continue with the group who maintain the Foundation's production Kubernetes clusters we needed a temporary maintenance environment. Bryan spent some time in mid December thinking about this issue again and managed to come up with a working solution. Bryan's solution is documented on the Phabricator task, but can be summarized as using ssh to create encrypted connections from a developer's local workstation to various services running in the Wikimedia production network and then configuring a Toolhub container to use those tunnels.

Production release made[edit]

A number of feature enhancements and bug fixes were deployed to the production https://toolhub.wikimedia.org site on 2022-01-05. This was the first deployment of the production service since 2021-10-25. This long delay was in part due to the maintenance environment problem. With the newly discovered workaround for that issue we were able to run database and Elasticsearch migration tasks to support new functionality.

Features added:

  • Tools can now be marked as "favorites" which adds them to a special list visible only to the current user.
  • Stemming support for English words has been added so that searches are more likely to find relevant tools.
  • The toolinfo.json schema has been updated to support two new tool types: lua module and template.
  • Required form fields now show an '*' after the field label.
  • Adding tools to lists is easier thanks to a new search feature in the UI form.

Bugs fixed:

  • Graphs have been fixed to always use a 0 basis for Y axis rendering.
  • Notifications have been added to explain when a URL is rejected as a duplicate and other URL registration errors.
  • Orphan toolinfo records are now removed from the catalog when a registered URL is deleted.
  • Vue components can now wait on the initial asynchronous loading of information about the current user before taking actions.
  • Many UI messages have been fixed to reactively change when the user selects a new locale.
  • Changing languages no longer resets state on views which are using tabbed navigation.