dont be afraid to commit
Back in June, which seems a long time ago now, we (OSGeo:UK) ran a mini FOSS4G event at the Ordnance Survey offices in Southampton, UK. It was a big success, well attended, and everyone seemed to enjoy themselves, which is always nice. This is not a post about the event, per se (perhaps in retrospect going straight on to another event the week after was a bad idea). Others have posted about this, and there’s always the #foss4guk hashtag on twitter if you’re interested. However, along with chairing the event, I foolishly decided to run a workshop around a topic that had been taking shape in my mind for a while- namely how to get new users of open source software to a point where they are comfortable contributing to the packages they use, as well as simply using them.
I began this workshop looking at my own perspective. I’m no more than an arm-chair coder at best (Python and SQL are fine but the rest requires some serious googling and sucking up to colleagues). I can, however, find and report bugs, and contribute to documentation, and that’s my way of giving back. This may not require an in depth knowledge of java or C++, and all the additional skills they require but there’s still a barrier to entry- namely navigating online repositories such as GitHub, and producing useful bug reports. Helping with documentation involves learning about ReadTheDocs and ReStructured Text, and proper bug reporting, where you try and isolate the cause of the problem requires virtualisation of some kind. Suddenly you’re looking at a fairly large toolkit, before you start with bug fixes and other code contributions!
Then, a few months ago some colleagues went to PyCon UK and came back with stories of the wonderous Don’t be afraid to commit workshops, so I decided to come up with something vaguely similar, but focused more on GitHub and bug reporting, and less on Python. I also included an adapted version of the wonderful How to Report a Bug site, but again focusing on open source geospatial projects. You can find my workshop attempt on GitHub at http://archaeogeek.github.io/foss4gukdontbeafraid/.
Some thoughts for those considering running something similar…
In retrospect it was incredibly ambitious to try and get through all the above in 2 hours- it was only possible by setting some fairly strict workshop prerequisites, which most people actually took note of. Given that this was a “Bring your own device” conference, I ran the Git sections using the command line tools rather than any of the graphical user interfaces. Although there was some resistance to this, it was the only sane approach because I had people using Windows, Mac, Linux and an Android tablet in the class! The bit that actually caused the most trouble was setting the default text editor for Git to use. If I was running the class again I would probably omit this section and use the short-hand method of adding commit messages at the command line instead.
It’s also really hard to manage a shared repository for people to use for trying out pull requests- I had a simple text file (generated using the superb hipster ipsum site to generate it), but that caused all sorts of conflicts when multiple people issued pull requests all at the same time. There are alternative approaches to this (countless online, interactive git tutorials) but they weren’t the approach I wanted to use in this workshop. If I’d had more time to prepare I would have come up with a more complex file, perhaps with some specific errors in it, that people could fix without conflicting with each other.
Finally, we barely had time to look at ReStructured Text, or virtualisation, and it probably wasn’t worth even trying to cover them in the same workshop!
Having said all that, I know of at least one workshop attendee who has used his new GitHub skills to good effect, and was recently seen contributing to some documentation, so that’s a start. It would be good if there were more workshops of this kind at open source conferences, not necessarily based on mine, but feel free to borrow/improve it if you like!