virtualizing a hackathon at ScalaMatsuri 2020

Here’s a report of running a virtual hackathon at ScalaMatsuri Day 2 Unconference. Someone proposed it for the Unconference, and I volunteered to be a facilitator on the day, so I went in without preparation. I booked the time originally for 4h (noon - 4pm JST, 11pm - 3am EDT) but it was successful so it got extended after some coffee break.

One thing I emphasize is The Law of Two Feet:

If at any time you find yourself in any situation where you are neither learning nor contributing: use your two feet and go someplace else

It’s an online Unconference with multiple sessions going on, so I’ve stated up front that people should feel free to drop in and out of Hackathon and check out other talks, or come in later and code.

what we used

Main communication was done using Zoom Meeting that ScalaMatsuri created. This allowed different participants to share their screen or ask questions. One potential drawback is that everyone can hear everything, so it wouldn’t work well if multiple groups tried to pair program.

Text-based communication was done using Discord. Discord was used to share links or for asking questions. We didn’t use it, a potential use of Discord can be for split-up room per project since it can share screen in a voice channel.

A Google Doc was created for listing projects, GitHub issues, and for signing up to the issues to work on.

work flow

scala/scala

People were interested in contributing to scala/scala where Scala compiler and standard library is hosted. I also gave a fair warning that it’s not uncommon for scala/scala pull request to sit around for several months especially when it’s not a clear-cut bug fix.

Funnily the first issue that got assigned was a regression introduced by another participant @exoego, so he mentored Shibuya-san to the fix.

Some useful links:

sbt

For any projects, it’s actually hard to come up with a good first issue. Some could be too easy. Others could look easy but not possible to fix in a day. For sbt, I suggested fixes for recent sbt 1.4.0 features.

sbt-gpg

Airframe

The maintainer Taro Saito (@xerial) dropped in and asked if someone could bump up Scalafmt version manually since Scala Steward doesn’t run the scalafmt after the update.

Scala Steward

TATSUNO Yasuhiro (@exoego) tackled the root cause and decided to change the Scala Steward itself.

summary

Some of the work might require some follow up work after the code is reviewed, but we managed to send around 12 pull requests, which I think is great. This is certainly more than one person could have coded in a day. In that sense, doing these Hackathon event is a huge force multiplier if you could pick up some issues get a group of people.

Through the context of talking about GitHub issues and coding, I had so much fun spending quality time with Scala programmers whom I’ve now known for years, and also meet new people. Thanks to all the participants, because it wouldn’t have worked if you didn’t show up and code :)