kdesvn-build 1.7 improvements

There’s enough changes in the upcoming kdesvn-build release to bump the version to 1.7 instead of another 1.6.x release. Here’s a sampling:

  • Improved latest log directory support: Normally kdesvn-build stores the logs for a build run in a directory named in the form YYYY-MM-DD-ID which is kind of unwieldy to type in. So what kdesvn-build would do is to create a symlink called “latest” which would point to the last build run. So an error that just occurred in kdelibs could be easily found, in ~/kdesvn/log/latest/kdelibs (the path may vary, kdesvn-build will tell you the exact location). This is cool and all but if you had multiple modules you wanted to look at then the behavior of “latest” was not normally be ideal.

    For instance let’s say there’s an error in kdebase and kdemultimedia. You fix kdebase and confirm that by running kdesvn-build just on kdebase. Now when you want to see what was up with kdemultimedia you can’t, as the latest symlink is pointing at the wrong directory.

    With this change, kdesvn-build symlinks individual modules under latest to the last run for that module. So, you can always go to ${log-dir}/latest/kdebase to see what the last set of logs is for kdebase.

  • Related to the last point, André Wöbbeking pointed out to me that kdesvn-build doesn’t create the latest symlink anymore if it didn’t already exist, which is also fixed. It’s probably been broken this way for awhile actually.
  • Another major change is that kdesvn-build will try to apply more intelligent default branch settings for modules. For instance if you set branch 4.1 for global settings and ask for the phonon module, kdesvn-build will download from branch 4.2, which is appropriate for phonon when trying to build KDE 4.1. You can still override this by specifying a branch for a module, and sometimes you must, especially for modules which don’t get branched with KDE like playground and extragear.
  • The phonon module I mentioned earlier is completely a figment of kdesvn-build’s imagination (it is developed normally in the kdesupport module). So kdesvn-build 1.6.2 only supported phonon with a branch option. Andreas Pakulat showed me that phonon trunk (from kdesupport) could be built without the rest of kdesupport so now kdesvn-build supports building the phonon module from trunk. Just remember it’s not a real module, kdesvn-build is making it up as it goes. ;)
  • Finally the biggest change is that kdesvn-build will support persistent data finally. In other words it will save information about its execution and results for later use. It doesn’t do much with this yet (I’m thinking of having it automatically re-run configure or cmake if the appropriate options change) but it lays the foundation for bigger stuff. One visible change is that kdesvn-build will warn you if modules repeatedly fail consecutive times so you can take a closer look at it.

So that’s a lot of work I think. If you want to test it’s all available from /trunk (kdesdk/scripts) and I would appreciate it since I may not have the opportunity to catch brown-paper-bag-type bugs for too long after release.