itch scratching |
2007-01-25
|
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>" \
"component=flumotion&milestone=0.2.3"
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.