I finished my GSOC in august. This post is about what happened since then. If you are interested in what happened before, look at this!
In short this blog post is about:
- A redesign my beloved tea-timer Clocks
- openSUSE express installation in Boxes
- static code analysis the unix way
Clocks – Redesign
At the GUADEC I spoke with Allan Day about a new design for gnome clocks. He was very fast in putting it into an image. It will fix some issues, among them we will get multiple and labelled timers so we can stresslessly roast potatoes while baking a cake and making a tea – repeatedly without having to redefine the timers. Strange meal though.
After getting a few things settled I decided to take an effort to make this mockup reality. If you are interested in this, please check out https://bugzilla.gnome.org/show_bug.cgi?id=740786 and leave your opinion!
Also I found someone at my university who is currently trying to get a foot into free software and seems willing to support me in this effort. I hope I can get this stone rolling in the following weeks.
Getting Started with Mockupping
After having a few ideas about the original mockup, for a first time I started playing with it. For those of you who never dared to do it: grab inkscape, grab one of the cool mockups from our great design team and get started intuitively. It’s easier than you think!
Boxes/libosinfo
Sadly I didn’t manage to get the express installation for openSUSE working. After carefully creating an express installation script for openSUSE 13.1 I had to find out that our express installation mechanism fails on the 13.2 ISO in a similar way it fails on Ubuntu and other live-only ISOs.
coala
With over 150 (reviewed) commits by me in the last 60 days my main efforts currently lie in this small project. Since we completely started from scratch in july we build up a high quality code base of over 3000 lines of code (excluding comments and so on) again with about half of it being for tests.
What is it?
coala is basically a framework that is designed to ease the task of static code analysis. The idea is to provide a coala executable which collects the static code analysis subroutines (we call them bears, some will be shipped with coala), executes them and processes the results. The bears themselves can concentrate on doing one thing well: analysing code. The whole user interaction and interprocess communication (yes, you can parallelize all that) is handled by coala. Thus coala can be used independently from the programming language and arbitrarily extended. In addition we will write a library that supports the bears in their task.
So in short: coala brings the unix principles (do one thing at a time and do it well) to static code analysis.
May it Help Gnome?
I hope so. I know some projects are using indent for some basic checking that helps getting patches right for review. coala could be used in the same manner while it
- …is easier to invoke and configure (you have a very simple project file instead of a very long indent invocation)
- …is way more flexible and can do more, customized and advanced checks and corrections.
- …gives the developer fine-grained control of what gets changed and what not.
All this could make submitting good patches easier, especially for new contributors, while it takes some responsibility from the maintainers thus saving time.
What’s the Status?
coala didn’t have a release yet but we work hard to have one soon. I’m currently unable to stop writing commits while two students from my university mainly review them, partly also write code. Right now I am waiting for review of the last commits needed to get a first functional version of the whole thing so we’ll have something (besides our prototype) we can show soon. Of course there is much to do – feature extensions (we’ll probably write an HTML output module some time), start writing bears and some fixing here and there.
If this got you interested, checkout https://github.com/sils1297/coala or get in contact with me (lasse dot schuirmann at gmail dot com)! We are searching for reviewers, code writers (python), test writers (python) and alpha testers.