I guess that since kdesvn-build is now one of about two scripts out there that can build KDE from Subversion, that there is more interest in using it.
I’ve received lots of advice and actual code from Thiago Macieira, who is apparently planning to switch from his custom scripts to kdesvn-build. Duncan Mac-Vicar, meanwhile, has been using it since it was called kdecvs-build, and has started on a Ruby-based rewrite that uses the same configuration file format so that it can eventually supplant kdesvn-build.
I fully support the idea of rewriting it in Ruby. Perl has been a good language to use for the core, due to the fact that it supports regular expressions right in the language, among other things. However, Perl has many shortcomings compared to Ruby.
First of all, Ruby has a far superior set of KDE bindings at this point. More importantly, it has supports Object-based programming that doesn’t stink. I’ve been meaning to clean up kdesvn-build for months now, but even after quite a bit of weeding I’ve done over the past two days, it still resembles an application straight out of 1986.
With Ruby as the language, we’d still have great support for regular expressions built into the language, but we’d also get objects and the possibility of building in a GUI for essentially free. In addition I’d be able to abstract a lot of the hacks that I’ve had to put into my script.
Many places in my script special-case qt-copy, for instance. It would be nice if, instead of having to do:
if ($module eq 'qt-copy') { # do some special qt-copy thing } else { # normal module }
everywhere I needed to deal with qt-copy, I’d be able to abstract it away into some kind of qt-copy module. Even now kdesvn-build has the same kind of idea in many places, with functions named like get_module_builddir(), but like I said, it’s straight from 1986. ;)
In other news, the kdesvn-pywizard script has been ported to support kdesvn-build, and improved as well. It requires PyQt, and you can find it in /trunk/kdenonbeta/kdecvs-build. Before breaking anonsvn down, you should realize that it’s strictly a configuration file wizard, which actually should be less useful than it sounds now the kdesvn-build has some sane option defaults.
Finally, I thought it would be neat if the meta info for .torrent files would tell you how many people were seeding and/or downloading the file. Turns out I’ll probably have to improve my .torrent-reading code first, since apparently arbitrary non-zero-terminated strings can be used as keys for the b-encoded dictionary used by the tracker, which of course my code doesn’t cope with yet. =D
If no one sees me for the next few days, it’s because I’ve gone to check in at my next duty station. My school doesn’t start until early June so hopefully they won’t have me holed up twiddling my fingers between breaks to an Internet café ;-)