Project Information
- Name of tool/project: Toolhub
- Project home page: https://meta.wikimedia.org/wiki/Toolhub
- Name of team requesting review: Developer-Advocacy
- Primary contact: @bd808
- Target date for deployment: August 12, 2021 (T271483)
- Link to code repository / patchset: https://gerrit.wikimedia.org/r/admin/repos/wikimedia/toolhub
Description of the tool/project:
The Toolhub project is an effort to catalog the various software tools used in the Wikimedia movement. It seeks to fulfill the core desires expressed by T115650: Create an authoritative and well promoted catalog of Wikimedia tools by providing a storage database, HTTP API, and user interface for collecting, creating, displaying, and searching 'toolinfo' records describing various tools invented by, maintained by, or simply useful to the Wikimedia community.
Description of how the tool will be used at WMF:
Toolhub is expected to be deployed into the 'production' Kubernetes cluster with connections to database and other supporting services hosted on Wikimedia Foundation infrastructure. This service will then be exposed as https://toolhub.wikimedia.org/ to the general public. The app will execute periodic jobs to populate its database with a combination of externally sourced toolinfo.json data and locally maintained data. The app also exposes a HTTP API and local OAuth provider which can be used by 3rd parties (for example Toolforge tool maintainers) to build tools which interact with the Toolhub managed data. This API is used by the SPA frontend delivered as a core feature of Toolhub.
Dependencies
- Python 3.7.x
- Django 2.2.x
- Various python libraries documented in the '[tool.poetry.dependencies]' section of the project's pyproject.toml config file
- NodeJS 10.x
- Vue.js 2.x
- Vuetify 2.x
- Various npm libraries documented in the 'dependencies' section of the project's package.json config file
- MySQL/MariaDB
- Memcached
- Redis
- Elasticsearch
- MediaWiki OAuth 2.0
Has this project been reviewed before?
No
Working test environment
Toolhub's development environment is designed to allow you to test and run
everything from inside of a collection of Docker containers managed with
Docker Compose. The git repo contains a Makefile in its root directory that
should make working with docker-compose easier.
$ git clone "https://gerrit.wikimedia.org/r/wikimedia/toolhub" $ cd toolhub $ make init
n.b. There is a webpack build step that occurs within the nodejs_1 container. This may take up to 5 minutes to complete under certain circumstance. So if you see a webpack-related error when attempting to access localhost:8000, you likely just need to wait a few minutes. As noted by @bd808 below, the status of this process can be tracked by running make tail after make init completes.
Post-deployment
Developer-Advocacy will continue to own the project following deployment to the Wikimedia Foundation's 'production' Kubernetes cluster with @bd808 as the primary contact.