Page MenuHomePhabricator

Code Stewardship Review: EasyTimeline
Open, Needs TriagePublic

Description

The following bullet points are optional - please fill them out if feasible, but this is not a hard requirement:

Event Timeline

I spent a decent amount of time understanding how EasyTimeline recently works as part of porting it over to Shellbox (T289226: Convert EasyTimeline extension to use Shellbox). It is quite incredible that it still "works" today, a testament to the initial implementation. Works might be a stretch though, it doesn't support RTL, nor HDPI screens. I tried to stuff in some improvements that seemed easy, like font selection, in my changes.

I would definitely call using ploticus to be an outdated platform fwiw.

Initially the plan was to migrate EasyTimeline uses to Graph, however it's clear that Graph is even less maintainable than EasyTimeline after the undeployment of Graphoid. Also Graph never fully implemented what EasyTimeline could do - provide wikilinks inside timelines.

There were also suggestions to have some automated script port EasyTimeline syntax to its replacement. I'm not really sure that's a good thing, EasyTimelines are usually laid out to be pixel perfect to the configured font (currently a custom "FreeSansWMF.tff"). The data is certainly worth extracting somehow.

Rather than try and find some new upstream project, I'd rather someone try and write a replacement that just uses HTML (probably with Lua) - I'm pretty confident that it's possible. First, this doesn't require any MediaWiki development knowledge, just on-wiki templates. And if it works, the module can be bundled into an extension and enabled everywhere, and people will slowly rewrite timelines to use it. Lua and HTML are both very stable technologies that we'll be able to support for years going forward, and don't require any upstream software that can be abandoned/falls out of favor (ploticus).

As for maintenance, once my patch lands, Timeline will be similar in structure to Score, which should make routine updates easier. And execution of Perl/ploticus will be containerized, so maintaining those packages is less of a priority and no longer blocks general appserver upgrades.

For everyone's info, currently no Code-Stewardship-Reviews are taking place as there is no clear path forward and as this is not prioritized work.
(Entirely personal opinion: I also assume lack of decision authority due to WMF not having a CTO currently. However, discussing this is off-topic for this task.)