Blog

Kubuntu QA and Feedback

Yesterday I decided that I would start tackling the QA side of things on the Todo List for Kubuntu Karmic. So with that I will be creating a QA policy for Kubuntu, which I am sure I build off of the current policies and guidelines for Ubuntu and other distros, since the work is already done pretty much, for the GNOME side of things. That’s what hackers do right? We hack together stuff until we get what we want ๐Ÿ™‚

Well, one of the projects I have been tasked with is to create some sort of feedback system for Kubuntu. In the past we had utilized the wiki but this ended up being more of an inconvenience than anything. What would happen is on release day, everyone goes and gets their fresh Kubuntu download, and heads over to do some feedback. You know what happens when multiple people start editing a wiki page at the same time without realizing that it is locked by another user. CONFLICTS! So with that said, I headed on out to start working on some sort of feedback system that we could access with a plasmoid. After researching my options, which unbelievably there aren’t many, I landed my first alpha release utilizing Lime Survey (an awesome open source survey application) and created a quick plasmoid utilzing Plasma.WebView in Python. Literally, the plasmoid took me about 5 minutes from start to finish, it is that crude and simple right now.

Here are a couple screenshots of what it currently looks like in action:

feedback1

feedback2

It works, so that qualified it for a quick alpha to let people see it in action and hopefully come up with some ideas.

I have come up with a couple of ideas for the plasmoid because of a simple design flaw. Utilizing the plasmoid will only work during a Live CD session or after Kubuntu is installed and running. Now we all know that during a development cycle not everyone can have the luxury of a Live CD or an install going as planned. Because of this, the plasmoid would be useless, therefor causing us to go back to an archaic method of filling in the feedback. The Internet! At least we have the Internet. Some things I would also like to incorporate, which is probably just another 5 minutes with the plasmoid, is the ability to work on the survey offline, and then syncing as soon as you come online.

So with that said now, I decided that the Linux desktop platforms could really use a good feedback application. One that ties into the desktop and submits results back to a central location. So I got to thinking. How about doing it like 5-a-day is done using bzr? Nah, then I thought some more. How about something like the Ubuntu and Debian Popularity Contest? OK, so the backend/server/database part would be fairly simple and straight forward. Now the frontend part. How would the application work? So I thought about XML files that contained the feedback questions and configuration. So far, this makes the most sense, but isn’t XML such a pain, the ball-and-chain for Python? I have so many ideas on how to go forth with this, now I just need to make some time and start playing around with ideas. What do you all think?

Download Here

Once it is downloaded, you can install it by using the “Add Widgets” dialog or via the command line by doing:

plasmapkg -i kubuntu-qa-feedback.plasmoid

Then you can add it to your desktop using the “Add Widgets” dialog or test it out via the command line by doing:

plasmoidviewer kubuntu-qa-feedback

That’s it from me tonight, goodnight world and happy hacking!

Posted in Development, Linux | Tagged , | 3 Responses

Kubuntu and Apport love

So, I decided to take all of the Apport related TODO items the other day and I am almost complete with all of them. Today I ported apport-qt to apport-kde, which means went from PyQt4 to PyKDE4 loveliness. Spent some time testing it and working out the bugs and I think it is good thus far. I am sure we will have to do some tweaks to it, but it is a great start.

Another item on the TODO list was to convert the Help->Report Bug… menu item to utilize Apport to file bug reports to Launchpad instead of going straight to KDE Bugzilla. In the future I will probably look at having both implemented, but that will need to be discussed further, probably with the KDE and Kubuntu people, as well as Celeste on usability.

Next step, something about all of the apps and Apport, so I will probably start working on hooks for the apps so we can get some better reports. Like always, I will keep you tuned in. Time for bed, good night!

Posted in Application, Development, Linux | Tagged , | 7 Responses

Interrogation with Apport hooks – Qt Included

Earlier today my buddy Martin Pitt blogged about how he needed a Qt developer to work on implementing the ui_question_choice() dialog. I looked through the code a bit this morning, and needed a little help right off the bat getting the GTK version running. One little thing I missed a bug report and Martin helped get it up and running. So as the day went on, storms came through, and for some reason I get in this storm hunter mode and nothing else gets done. Well, about an hour ago all the storms have cleared up and back to work I went. I spent about an hour, most of which was silly Qt Designer and layouts, which Kubuntu guys, I suck at, never listen to me brag about my Qt Designer classes again! The other thing that had me for a second was trying to iterate over a layout to get button statuses. After all was said and done, this is the little beauty that popped up when testing:

apport-qt4

Not to shabby. I will spend some time looking through all of the apport-qt ui stuff and see if I can make it as simple as the GTK side. The checkboxes in that image are generated dynamically by the hook. So once they are added to the layout, trying to figure out their status when they weren’t provided a name was tricky. Thankfully the PyQt 4 API Documentation is great!

So here it is, there is the main dialog and then there is the groupbox with a vertical box inside of it. The vertical box makes it simple to add and remove stuff so that’s why I went that route, KISS. So after the box is populate, you select the stuff you need then press OK to submit it. Well the trick was finding out what is checked. So the main dialog is named dialog and the vertical box that holds the check boxes is called vbox_choices. So here is how I got those values:

result = []
for c in range(0, dialog.vbox_choices.count()):
    if dialog.vbox_choices.itemAt(c).widget().isChecked():
        result.append(c)

So, the main reason for doing this, is so I can find it a bit easier next time, and the fact that I couldn’t find this little bit documented anywhere else. If there is a better way to do this, let me know.

EDIT: Removed the index variable as it was old code left hanging around when I did the copy and paste. Thanks Milian for catching that.

Posted in Application, Development, Linux | Tagged , , , , | 12 Responses
  • Archives

semidetached
semidetached
semidetached
semidetached