Introducing GOSC - A Graphical client for openSUSE Build Service

Introducing GOSC - a graphical client for openSUSE build service.

openSUSE buildservice is an awesome framework for building rpms for multiple distributions. It is used by the openSUSE project, the Meego project, VLC, all distro releases from Novell, and in many other places. Usually OBS is accessed by a browser, I have implemented a simple GUI tool for working with OBS servers.

If you are extremely busy, just proceed to the screenshots section and the github tree. Otherwise, read below:

History
1) A few days back, sragavan, ravim85 and I were chatting on twitter that the new (2.0) interface of OBS takes too much of clicks and too many page navigations for simple operations (compared to older interface). I felt that it will be better if I could get the build information about all my projects in a single page and also allowing me to easily see the build logs of various packages.

2) I have always wanted to learn python. I have given some small level python patches for some projects. But haven't had any experience in writing a python project from the scratch.

3) Today (yesterday to be precise) I had an annoying meeting that drained me mentally and ended up with some frustration. I wanted to get rid of the bad mood.

Based on the above three factors, I decided to complete a project that I just started day before yesterday (with a simple Python HelloWorld) into an usable thick-client for openSUSE build service. The result is GOSC and the code is already in github.

OSC commandline & OBS Library
I wanted to use a library for talking with the OBS APIs from my GUI client. But darix confirmed my fear in IRC that no such library exists as of now. One option was to copy paste code from the osc commandline client's sources. But this is ugly and will give maintenance nightmares. So, I decided to just use "osc" from my python programs and create a GUI wrapper using Python.

yabsc
Srinidhi told me of a different client for build-service named yabsc. I looked into it. It was written in true KDE fashion, exposing every possible control to the user. It lists all the projects building in the entire build-service and not just "My Projects". Also, I felt it is a little keyboard unfriendly and had too many tabs. So I ditched it as it was not meeting my usability requirements. However, if you are a looking for a more powerful, more matured product and not scared by too many controls on screen, it is better if you try yabsc.

Screenshots


Initial screen. "My Projects" are shown in the top-left listview. 

Double-clicking a project from the list, will list the packages in the project in the adjacent listview. The buildresults of the project are shown in the bottom textarea.

Double-clicking a package from the top-right listview, will popup a Repository chooser dialog.

The entire buildlog of the selected package is shown in the textarea.

The source is licensed under LGPLv2.1. There are a lot of small fixes that could still be added, like a "Loading..." status bar for network operations, Caching of buildlogs, project names, subscribing to build notifications from the build-server etc. But they are not part of my regular workflow and also I strongly believe in "Release Early Release Often". So, I am releasing in this barebones version, which already seem to solve my workflow needs.

During the implementation of this, I learned a lot about python. This experience also strengthened my old opinion that Compiled languages are better for large scale projects.

Your feedback, comments and patches are very much welcome. 

Rep Rap - Bringing China to your Desk

I was reading an interview of Novell Distinguished Engineer and hacker-extra-ordinaire Michael Meeks about LibreOffice and FOSDEM. Towards the end of the interview, he mentioned about a free software project and community named RepRap.

I've never heard of it and so got curious and found the project's home page. I believe this idea is better than even sliced bread and has a huge potential. I am thoroughly impressed. It is about 3D printing of plastic. Watch the video demonstration for yourself. Worth sharing.


RepRap from Adrian Bowyer on Vimeo.