Currently, the process to build a distribution of our product requires a couple of manual steps. One of these steps is to update the
NEWS file, which describes the changes between releases. Of course, everything that changes between releases, is documented in the issue tracking system, in our case FogBugz. (FogBugz is OK to work with most of the time, although I think there are better alternatives, like Jira.)
FogBugz lets you add release notes to each issue (which it calls case), and it provides a standard report to show the release notes for all cases scheduled for a specific release. You can even download this report in
The only problem is that this functionality doesn’t work most of the time. The only time when it is guaranteed to work, is when you try it on the server that hosts FogBugz. Since this machine is in the server room, this is inconvenient to say the least. But even if this functionality worked flawlessly every time, everywhere, it would still be a manual step to collect the
So I turned to HtmlUnit, a “browser for Java programs. It models
HTML documents and provides an
API that allows you to invoke pages, fill out forms, click links, etc… just like you do in your normal browser.” We use this great tool a lot to write our acceptance tests.
This time, I used HtmlUnit’s WebClient from within an Ant task to log in into FogBugz, generate the release notes report, extract cases with release notes (some cases have none, since they are too trivial to bother the end user with), and write them to an
XML file. This allows me to transform the
XML file to plain text using
XSLT, giving a
NEWS file section for the current release. The next step is to automagically add this to the existing
NEWS file. This should be easy enough using Ant’s concat task. I will let you know how this works out.