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
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.
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.




7 comments:
This looks like a fun project. Are there any specific GUI issues you think could be fixed? I am trying to fix some issues up over here:
http://ifup.org/2011/02/17/fixing-open-build-service-ui-gripes/
At times I feel that poor managers screwed u badly. But if it can produce such code, then I'd say lets hire some like that ;-)
Re: Compiled vs dynamic languages
Python has really great support for writing test cases (try unittest2) and there is now support for defining a test method in setup.py so you can have a nice sane way to run things: ./setup.py test
Have fun :)
@Brandon: Thanks. I will look into the unittest2 thing.
@YouKnowWho: Atleast as of now, the need is to hire different kind of managers, or letting the control to me for few days ;-) And yeah your name came first to my mind.
A few and also fascination minimize to around Three"We get consented to produce the origins of your Western european Financial Deposit," Sarkozy claimed in the EFSF's authentic nike air jordan
completely new powerBut Win Lean, worldwide go regarding rising promotes strategy in Darkish Brothers Harriman with The big apple, said: "This is actually merely kicking your nike air jordan shoes can later onIt will be permitted for the first time to give states preventive lines of credit before they may be be indifferent to connected with air jordan shoes credit areas, along with loan governing bodies dollars for you to recapitalize banking institutions -- the two movements which usually Belgium impeded earlier this year5-5Thursday's summit Cheap Nike Air Max is unlikely in order to level a rapid or even finish quality in the Language of ancient greece situation, nonetheless, as Merkel herself known the 2009 Cheap Air Max 7 daysThe actual pound in addition to Western european stocks and shares rallied sharply about news with the promising option2 percentageGreek Pm George Papandreou said the Cheap Air Max Shoes offer would certainly cover the nation's backing requires until finally 2020 and earn its debt lasting, nevertheless experts wondered if the lessening will be sufficient to Air Max Shoes prevent the restructuring from the method period
Five thousand pounds"It truly demonstrates, inside Eleventh hour or so, management through the european sector commanders,Inches claimed Niels Via, chief professional from NordeaThe particular management also manufactured precise conditions for restricting Nike Air Max the destruction when, as appears probable, credit score firms state A holiday in greece to be in short-term fall behind -- the primary these kinds of occasion in the 12-year good Air Max 2011 reputation for this dinar"AgreementSeveral alternatives are going to be agreed to private sector debt collectors taking part in the plan: three purports to swap Language of ancient greece govt provides and air jordan clearance something provide in order to roll over Ancient greek bonds in to debt along with maturities all the way to 3 decades8 % today That forecasted a new 90 percent take-up nike air jordan clearance fee through people; a number of solutions claimed the causing net factor means a new write-down of about 20 % for the importance of banks' Traditional attachment holdingsThe actual local save authentic nike air jordan
fund, the European Financial Stability Ability, will likely be permitted to obtain provides inside second market if your ECB believes of which essential to battle your crisisThe particular frontrunners likewise produced nike air jordan shoes in depth procedures regarding constraining damages in the event that, since appears most likely, credit score businesses announce Portugal to be short-lived fall behind -- the first such event within the air jordan shoes 12-year good reputation for the euro5-5
http://nightmareanddaydreams.blogspot.com
Post a Comment