MediaWiki Stakeholders' Group/Blog/2016-06-22

Impressions from the Jerusalem Hackathon 2016

Author: Markus Glaser

People: {{{1}}}
Tags: Hackathon,

This year’s European Hackathon took place in Jerusalem, Israel (well, this is not exactly Europe, but only encyclopaedists would insist here). Wikimedia Israel gave us a very sweet welcome, thanks for that!

The main focus of the hackathon was working on the community wishlist and several projects could be completed. I want to share a story of a not completed task, though. So before the conference, I picked a task for myself which was to add an expiry date to watchlist items. This, so it seemed, was reasonably challenging, but not impossible to do when you are at a place where all the MediaWiki hackers are. Add a table column, a few user interface items and some logic to expire and remove watchlist entries. However, when looking at the Phabricator ticket, there was a list of 25 blocking tasks which had to be resolved before. Why was that? It turned out that watchlist code is one of the oldest code areas in MediaWiki and no one had touched it for years (except for some necessary adoptions). The watchlist code seems to be spread all over the place and has to be refactored in several ways. The good news is, a team of core developers took on the task and it will be way easier to work on the watchlist in the future. There are several takeaways from this.

  • First, never misunderestimate the complexity of code. Even seemingly simple tasks can become a refactoring hell.
  • Second, it is not always the experts who trigger a reduction of technical debt. Had the community not voted this task very high, probably the old watchlist code would sit there for another few years.
  • Third, a hacky solution might have been possible. However, this is not the way to go unless we want to have even more bad code in the software.I am very delighted to see that the Foundation team has tackled the task even though it is more time consuming than initially thought.

It is a good attitude in our movement to take community wishes very serious.

So instead, I ended up translating some entry pages for developers into German and hope, this helps someone to get started and find their way into MediaWiki hacking. In that course, Manuel Schneider and I also worked on a navigation for extension developers, which should provide them with easy access to all the necessary material about extension development. This is not finished yet, and we appreciate your input on what's important for MediaWiki developers.

Special thanks go out to Maor Malul, who took us to the best Kurdish restaurant in Jerusalem and showed us around his very lovely neighbourhood, including the synagogue.