Saturday, 6 April 2013


One of the most important thing in developing software is making releases. Almost no one will use your application, no matter how useful and stable it is, until it is released and has a nice version number (the bigger the better).


Making releases for Kadu is long and painful process. There is list of steps that must be done. Most of them are not automated, like:
  • create packages, sanity test them
  • upload packages into three different places
  • update git repositories (version branches, tags)
  • write release notes in two languages
  • publish release notes in four different places on two websites and one mailing list
Personally, I hate doing that. And for some reason I've never found time to automate most of the task. When I looked at the list last time, I've realized that most of these tasks could (and should) be automated. Of course release notes and announcements must be written manually, but what about all the other tasks? Lets check:
  • bugs checking on redmine - scriptable
  • translation checking - scriptable
  • git updates - scriptable
  • creating packages - scriptable
  • uploading packages - scriptable
  • sending mails to lists - scriptable
  • forum  - scriptable
  • blip - scriptable
  • server stuff - scriptable
So we are left with only three things: writing some release notes (including taking screenshots and making screencasts) and updating our wiki and Wikipedia. If we replace our wiki with something simpler, like Wordpress or Drupal - we could get to just two manual steps. Also, we don't make release notes for bugfix releases. So we will need to do only one manual step in such case. That seems a lot better.

I'm sure that this is the way we need to follow. If we can do painless releases then we will be able to deliver software with less bugs faster. Maybe even weekly bugfix releases will be possible.


After creating release we need to deliver application to end users. Fortunately most Linux distributions take care of applying updates automatically. So we are left with Windows and MacOS. For first iteration we will provide link to installer file in New Version dialog or notification. In second, we will automatically download it and run installer from Kadu (after user accepts it, of course).

Chrome has ideal solution for that. Updates are silent and very small (Google is using very clever executable diff files) and you are never ever informed about update - it just happens when browser is restarted. I don't think that we will be able to get that far with our manpower. But who knows :)


There are lot of things in Kadu that must be done. But this is base for them all. If we cant make releases then nobody will be able to use our new features and new bugfixes. So this task will be done as part of 1.0 release. Be ready.

No comments:

Post a Comment