This morning I got up early again – around 7 AM – due to jet lag. I decided I wanted to put out a long overdue Flumotion 0.2.3 maintenance release.
As part of the release process, there is one bit where I’m supposed to download the results of a query on trac. The result is a text file with id (spaces) summary lines. I then paste this into the .xml file from which the html and plaintext release notes are generated. The annoying part is that every time I end up doing silly search-and-replace tricks to convert the plaintext lines to something that has tags around them for bug, id, and summary.
So, an ideal feature to add to moap, the new Swiss army knife for maintainers. In a good 90 minutes of hacking, I created a skeleton BugTracker class and implemented what I need for the Trac implementation. This talks to the xmlrpc trac plugin on a trac database.
I only implemented what I needed to be able to complete this step in releasing Flumotion; moap can now show one specific bug by id, or can perform a trac query and return a list of bugs, using an optional format string. It knows what bug tracker URL to use because you specify it, or because there is a .doap file either in the current directory, or you are already in the doap subcommand and have specified a doap file. Phew.
So now I can do:
[flumotion] $ moap doap bug query \
--format "<bug><id>%(id)s</id><summary>%(summary)s</summary></bug>" \
and I get
<bug><id>476</id><summary>flumotion 0.2.2 with gstreamer-plugins-base 0.10.10 cannot stream multipart</summary></bug>
<bug><id>533</id><summary>ImportError No module named flumotion.component.effects.volume</summary></bug>
<bug><id>539</id><summary>Sample rates for ALSA in wizard do not include 16000</summary></bug>
and I just cut and paste that bit into the .xml file.
Not bad for 90 minutes of hacking. At 5 minutes of pain saved for every release, all I need to do is to do 18 more releases to recoup my investment.
I am launching a new website very soon, amimetalornot.com
The idea is very simple. We put videos online, you can rate the video on a scale from 0 to 10. 10 is for “woah this guy is so metal Satan wants to be him”, 0 is for “wait a minute, wasn’t that guy in the Backstreet Boys ?”
The website is not online yet since we are still in the testing phase, but how about we start of with this particular video and you just send me a mail with your score. I will tally them up and publish the result here.
The last package part of the Twisted splitup in Fedora Extras has finally hit devel and FC6: the python-twisted umbrella package that pulls in all the others so that the upgrade from previous python-twisted (Sumo) packages is seamless.
Of course, in the long time it took to siphon all packages through, the Twisted team has released a new version. So my work is not done yet – but I will put off updating them to next week when I’m in a more comfortable place to do the work.
With that, it is finally getting time to take a look at how we can split up Flumotion so that people can install manager and worker pieces completely without any GTK/X dependencies. Twisted has split in pieces, pygtk has split off pygobject, so everything is ready now.
Flumotion 0.4.0 is right around the corner, Zaheer has done the hard testing work and Andy’s been fixing robustness-related issues all over for the last month. I should get off my ass and start documenting some more.
So, after updating the OLPC firmware using 3 USB keys (so that the battery actually charges again), installing a bunch of Twisted stuff (luckily my local mix of FC5 and FC6 packages worked ,because the network is about 9600 baud, I kid you not), and changing a bunch of source code to work with v4l2src, we have the OLPC streaming with Flumotion.
Ryan Lortie and James Henstridge being watched by an OLPC
The OLPC only does video capturing, then throws the raw frames on the wireless Ad-Hoc network of my laptop. My laptop does the encoding and streaming. The network gives up once in a while, but it looks doable enough to demo this at my Flumotion talk at LCA this Friday.
Side effect of being on the other side of the planet: every time I am sitting in an after-lunch session my battery is draining at double speed because a cron job is running updatedb – the laptop thinks it’s 4 AM.
In unrelated news, PulseAudio is finally getting a better name – after a long night of love Lennart is renaming it to HorseAudio. I am sure Jono will get a picture up soon enough with more details.