Page MenuHomePhabricator

Usurp and move phabricator-bug-status to the Toolforge Jobs Framework
Open, Needs TriagePublic

Description

The phabricator-bug-status Toolforge tool which used to run on the Grid Engine has been unstable for years and is now in imminent danger of being shut down for good. The tool is the backend used by MediaWiki:Gadget-BugStatusUpdate.js on enWP (and other projects).

The maintainer of the tool, Matt Flaschen, has not edited since 2019 and no longer works for the WMF, so is unlikely to show up any time soon.

Salvaging it involves usurping the Toolforge tool, replacing the API key and certificates for Conduit (Phabricator's API), and migrating the tool to run on the Toolforge Jobs Framework (k8s) and the Envvars Service.

The code is 30 lines of standard Python implementing a simple Flask application. It has one major non-standard dep in the phabricator Python library (there are multiple python libs for Phab and I don't know which one this is). @Legoktm is credited in the source for assistance and may possibly be persuaded to provide advice if you decide to take this on.

You can find the code at…

https://gerrit.wikimedia.org/r/plugins/gitiles/labs/tools/phabricator-bug-status/

…but you'll probably want to move it to a repo you control on the Wikimedia Gitlab instance as a first step (Striker can make one for you from the tool's admin console).

Event Timeline

Matt hasn't edited since 2019 and no longer works for the WMF so is unlikely to show up and fix the tool. But if anybody feels up for usurping it, the code is at

https://gerrit.wikimedia.org/r/plugins/gitiles/labs/tools/phabricator-bug-status/+/refs/heads/master/www/python/src/app.py

and is pretty simple (30 lines of standard Python plus a config file). It has one major dep in the phabricator library, and needs some fiddling with certificates and API key for Phabricator, but otherwise it's a simple Flask app serving two paths with nothing particularly fancy happening.

Moving this to the Toolforge Jobs Framework and the Env Vars Service should be pretty straightforward.

And that should take care of T329927 too.

Xover renamed this task from Move phabricator-bug-status to kubernetes to Usurp and move phabricator-bug-status to the Toolforge Jobs Framework.Mar 3 2024, 1:34 PM
Xover reopened this task as Open.
Xover updated the task description. (Show Details)
Xover added a subscriber: Legoktm.

https://k8s-status.toolforge.org/namespaces/tool-phabricator-bug-status/ shows the tool running on the Kubernetes backend.

It's running there, it just throws 500 errors. See example query.