Week 8 - 9 - Europython2016 and packaging


The past week I attended Europython 2016. It was the first time I was attending a tech conference so I was impressed with stuff other people might find usual or normal. I also managed to finish the packaging script for the coala-bears. Since both of those announcements come with long stories I will try to brief them in their corresponding sections. Let's start with...

Europython 2016

The conference was held in Bilbao (where it was held last year also), in Spain this year. I was excited to meet the coala team at last. Also, I had never been to Spain before so adding all those up, it was a promising trip for me.

On the first day I found out 2 things about Bilbao while we were struggling to find our accommodation: it is a really beautiful city; very few people actually speak English. The later didn't matter much since we were spending most of our day at the conference venue but it was really funny to try ordering food when we were eating out in the evening.

The Europython schedule was as follows: keynotes from 9 to 10 a.m. usually and then workshops and/or talks until lunch, after that more workshops and talks, it was awesome. I have to admit, I couldn't be there for "every" keynote because we were hacking on coala almost every night. The cover picture is taken by our mighty leader Lasse and it features a part of the coala team after lunch.

I attended both workshops and talks but often I had to compromise because there were 5 talk tracks and 2 workshop tracks from which I could choose. Being a beginner with python myself, I learned about a lot of technologies and how to use them like tensorflow and theano for machine learning.

All in all, it was a great experience with lots of learning, tasty food, "mostly" interesting conversations and fun group activities (real community bonding).


Enough with the fun, let's talk a bit about work. I have explained in the past a bit about the need for a packaging tool for bears. The first issue that I encountered was not as trivial as it may sound: choosing the package format. Initially I wanted to go with pypi but my project focuses on enabling users to write bears with other languages, which meant that code different that python had to be packaged, so I decided (with some help from the mentors) to go with conda.

The second issue was that I couldn't write the tool from scratch in order to avoid code duplication. For that matter I had to extend an already developed tool (for the second time in this gsoc) by another coalanian. That tool was handling packaging and uploading to pypi for every bear in the existing coala-bears repo. That way we keep bear independence if someone would want to install them separately. I could reuse some methods, for example the file generation from templates, which was fortunate for me.

Now I can proudly announce that you can create a conda package for any bear just by pointing the tool to the bear directory. It will create all the necessary files for you and it will try to fetch the repository URL from your .git/config file (if not possible it will just prompt you for the URL).

Wrap Up

I am now entering in the last milestone of my Gsoc in which I will create templates for other languages with code stubs already in them (functions for creating Result objects, reading input, sending output). I am thinking initially I will try to make one for a compiled language (C++) and an interpreted one (Javascript out of the browser with node).
After that I am going to write tutorials on how to use all the tools I developed (extended) and how to write a bear in a different language. Cya