DMDircthe intelligent IRC client

DMDirc 0.6

Filed under: News, Release — Shane on September 13, 2008 @ 12:08 am — Permalink

Edit: It was recently brought to our attention that the OS X version previously released contained a bug that prevented the client from starting. This bug has now been fixed in the version available from Google code, we urge OS X users who previously downloaded and tried to use this version of DMDirc to try again with the fixed version.

After a long period of testing we have finally released DMDirc 0.6, and we think this is the best version of DMDirc to date with over 250 feature additions, bug fixes and other changes, including:

  • Themes system revamp to allow multiple themes to be loaded at a time
  • Completely redesigned Actions Manager and Actions Editor dialog (see our previous coverage of these)
  • New installer for OS X
  • The Linux installer can now be used for BSD-like OSs that have Java pre-installed
  • The Linux installer can now be used on Open Solaris
  • The automatic updater can now update plugins

As of DMDirc 0.6 we now support running on more platforms than before: we have installers for Linux, BSD, Solaris, OS X and Windows, as well as a standalone Jar file for any other platforms that we don’t currently provide an installer for.

Users of DMDirc 0.5.6 (or the recent unstable releases) should be prompted by the updater (if enabled) to update to the latest version of DMDirc. Alternatively, you can visit our downloads page to grab the latest version yourself.

With DMDirc 0.6 (finally!) released we are looking forward to our next release, DMDirc 0.6.3. This will include support for SOCKS proxies, improved support for SSL Servers, a nicer looking Preferences dialog, server lists and more.

As always, we welcome bug reports and feature requests on our issue tracker, irc channel or as comments on this post.

Improving the development process

Filed under: General, QA, Release, Tech — Shane on August 31, 2008 @ 6:09 pm — Permalink

One of the things that makes DMDirc good (in my opinion) is that the three main developers actively use it pretty much all day, every day. We are all very, very heavy IRC users (unlike the author of mIRC for instance, who admits to only occasionally using IRC), which is what led to us [re]starting DMDirc development — when we all switched to Linux, we couldn’t find an existing client that any of us really liked.

From the start we wanted DMDirc to be an excellent client, and we quickly got it into a usable state (I have logs showing me using it in early May 2007). To help us do this we registered with Google Code, which provided us with a Subversion repository, download hosting and an issue tracker.

In addition to the tools on Google Code we also wrote a service that received error reports from DMDirc clients, and allowed developers to browse them using a web interface. This system never really worked too well; it meant that we in effect had two systems for tracking errors, the automated error system (which was checked manually, and therefore quite infrequently) and the user-facing Google Code issue tracker. The Google Code issue tracker also had quite a few issues of its own [ba-dum-tish] that posed problems for us: we didn’t have much control over it, Google were slow to improve it, and it didn’t allow for dependencies or private issues. The lack of private issues was the reason we felt the need to have two separate systems at the time — automatically reported errors may in some cases contain private information, so we can’t show them publicly.

Sometime just before DMDirc 0.5.5 was released, we decided to start using Mantis as our primary issue tracker. Mantis, whilst not perfect, gave us the control we wanted — it’s written in PHP (which, like Java, we all know very well), and is easy enough to modify. We imported all of our existing issues from Google Code, using a Python script (yay for multi-language proficiency!) to screenscrape the website and build an XML file, and then a PHP script to read the XML file and import the issues into Mantis. With the issues imported, we set about modifying Mantis to better suit our needs.

We (well, Chris and I) had got quite used to using the issue ‘grid view’ offered by Google code, so one of the first things we did when switching to Mantis was implementing our own version of it. We also improved the error reporting backend to raise new Mantis issues (marked as private, of course). Later on, we also enabled SVN integration, which initially meant writing a script to parse e-mails from Google Code (where our SVN repository was still hosted) and passing the information on to Mantis for it to use. After a while, we modified the integration to include links to our Fisheye instance, and also map Subversion users to Mantis users in order to add comments with the appropriate username instead of just ‘SVN user’.

More recently, we’ve improved the Fisheye aspect of the integration dramatically; we now access Fisheye and include its representation of the changes directly in Mantis, allowing you to see a list of affected files and even view diffs of the changes without leaving the issue page. We also parse any stack traces in the issue description, and automatically link relevant lines to the Fisheye view of the specified file and revision, if the information is available. You can see an example of both of these modifications in this issue.

Now, as I mentioned above, we are all heavy IRC users so having to periodically check Mantis for new bugs wasn’t very appealing to us, so we modified it some more so that it communicated with an IRC bot we have which is designed to relay notifications. Mantis tells us everything that happens — new issues, edited issues, property changes on issues — anything that happens there, we instantly know about it.

This setup worked well for us for about 4 months, after which we decided to switch over to using a self-hosted SVN Repository, which opened up even more possibilities. We added post-commit hooks to replace the email-parsing hacks for Mantis support, enabled reporting of commits to IRC, and created a pre-commit hook to make sure that every commit was linked to an issue on Mantis.

Not long after that we discovered and implemented Bamboo into our development process. Bamboo is a Continuous Integration server, which means that every time we commit something to the trunk (or active branches), it will rebuild the project on our server, run our collection of unit tests and then publish and store the results. Bamboo also notifies us via Jabber if you cause a build to fail. Of course this wasn’t quite perfect, and after a short while we discovered a plugin that can execute post-build scripts. One Bash script later and Bamboo was reporting to IRC like everything else. We also, of course, integrated Bamboo with Mantis. If you check this issue again you will see that the results of the build from Bamboo are also reported under the the commit that triggered it.

As mentioned before, we have a collection of unit tests to make sure things work as expected. Every so often we generate Clover reports to show how much code coverage we have, and in the last month we have also discovered and began using the FEST Swing library to allow us to start unit testing the DMDirc GUI.

So as you can see, what we have now is a very tightly integrated system to help ensure that DMDirc is a quality product. Everything reports to IRC so we know as soon as things happen, our issue tracker is almost omnipotent in that it can tell nearly everything about an issue from being raised to being fixed, and to top it all off, we have Nagios running and monitoring it all for us (and of course, this reports to IRC also!)

Of course this setup wouldn’t be possible if it wasn’t for a few choice products provided for free — Mantis, Fisheye, Bamboo, Clover and many others. We would like to thank the developers of these products for helping us make DMDirc great.

DMDirc 0.5.5 Released

Filed under: News, Release — Shane on January 30, 2008 @ 6:41 am — Permalink

We have just released version 0.5.5 of DMDirc. This release is an interim release between 0.5.1 and 0.6 to get some important features of 0.6 in use in the stable version.

Some of the main changes include:

  • The new launchers which give the client the ability to update itself via the updater
  • URL Handler to allow adding support for non-http links (Eg steam://, ftp://)
  • Much improved plugin system (Plugins are now stored in jar files rather than loads of .class files)
  • Many more, read the changelog for a full list.

The installer for DMDirc 0.5.5 can be downloaded for Windows or Linux.

DMDirc 0.5.1 released

Filed under: News, Release — greboid on October 7, 2007 @ 10:32 pm — Permalink

We have just released version 0.5.1 of DMDirc. This is mainly a bug fix release with a couple of minor 0.6 improvements included, see the changelog for more information.

The installer for DMDirc 0.5.1 can be downloaded for Windows or Linux.

DMDirc 0.5 released

Filed under: General, News, Release — greboid on September 26, 2007 @ 4:28 pm — Permalink

We have just released version 0.5 of DMDirc.

0.5 has just under 100 features or improvements and 77 bug fixes since 0.4, the major additions in 0.5 are

* Added action wrappers for aliases and performs
* Added intelligent tab completion for commands
* Added server settings dialog
* Added support for themes
* Added support for character transcoding
* Added support for various command-line options
* Added installers for Windows and Linux

See the changelog for more information on this release. As always we recommend existing users to upgrade, and non-users to give it a go, come visit us in #DMDirc on Quakenet (see the help menu) with your feedback or just to visit.

0.5 can be downloaded for windows and linux

Next Page »

Powered by WordPress