DMDirc 0.8 was released on the 27th of February.
DMDirc 0.8 was released on the 27th of February.
It’s been a while since we posted on here, but DMDirc 0.7 was released for download earlier this month on Jan 5th.
DMDirc 0.6.5 is now available for download. As usual, DMDirc 0.6.5 contains a huge raft of improvements and features from 0.6.4.
As you can probably gather from DMDirc’s tagline, we like making DMDirc act intelligently. One of our latest set of changes revolves around intelligent handling of channel names. Say you join a channel and a friendly person advises you to try some others out for size:
We’ve just released DMDirc 0.6.3, which is our first release in 2010. From a development point of view, this release also marks the end of our support for Subversion. An overview of the changes included follows:
In preparation for DMDirc 0.6.3, we’ve just finished enhancing our release procedures considerably. Previously, a typical set of steps needed to release a version of DMDirc would be:
Despite using Git for all of our DMDirc development work for over a year, we have continued to maintain a copy of the entire codebase in an SVN repository. This was primarily to facilitate some of our automated scripts, which we’ve finally finished migrating to use Git. This means that we no longer have any need to keep the SVN Repository up to date, and will stop doing so after the release of 0.6.3 in early March.
For the past year, the ever-growing DMDirc code base has been managed using the Git version control system. We still mirror our code to an SVN repository, and a couple of our automated tools still use the SVN version of things, but we’re slowly and surely modifying, upgrading or scrapping these in favour of Git-based solutions.
At the start of the month we quietly released DMDirc 0.6.3m2 as part of our new fixed release cycle.
Regular visitors to our blog may have noticed a lack of development roundups over the past few months. This was due to some non-DMDirc commitments/difficulties experienced by some of the developers. Never fear, though, we’re now back and gearing up for DMDirc 0.6.3m2, which should be out on the 1st of November according to our release schedule. We’ll try to clear up the backlog of roundups over the next few days.
Once again, we are looking at improving the DMDirc release cycle. First, a bit of history. When we first started with DMDirc back in 2007 we had very regular releases, but these have slowly started getting longer and longer:
During May the DMDirc developers were gearing up to release DMDirc 0.6.3m1 (which has just been released: see our previous blog post), the first of our “milestone” releases on the way to 0.6.3 proper. During this month we made 113 commits to our git repository, fixing over 30 issues. Some of the more notable changes this month were:
After nearly a year, we have just released DMDirc 0.6.3m1, with over 1000 commits resulting in over 200 feature additions, bug fixes and other changes, including:
April was a fairly slow month for the DMDirc developers. One of our biggest time sinks this month was fixing problems in the UI which appeared after we made some changes to improve thread safety. Throughout the month we had both major and minor issues related to window switching and maximising/restoring, some of which we’re only just getting around to fixing now.
March was a reasonably busy month for us, with 160 commits to our central repository.
Welcome to the second instalment in our monthly series of development roundup blog posts. February was a much busier month for us than January, with quite a few major changes, and over 280 commits made to our git repository.
This is the first post in what will hopefully be a regular series of updates from the DMDirc developers, detailing what we’ve been up to on a month-by-month basis. Because of DMDirc’s quite long release schedule, we have found that our communication on the blog is done in small bursts when a release is nearly ready, with very long gaps in between; hopefully these updates will help bridge that gap.
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.
In DMDirc 0.6, we have made some back-end improvements to the functionality actions groups which allow authors of action packs to specify meta-data such as a description of the pack, and also list the settings available. We obviously wanted to include this new information into the actions UI, and we were aware that the current actions editor wasn’t as user-friendly as it could be, so we took the opportunity to redesign and rewrite the actions UIs.
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.
If you’re reading this via our website, you may have already noticed that DMDirc has undergone a small re-branding. We now use the tagline “the intelligent IRC client” across all the DMDirc sites (apart from the addons site which is undergoing an overhaul — you can take a sneak peak at what it’s going to be like over at the development site). This tagline has also found its way into the ‘About’ dialog in recent nightly builds.
With DMDirc 0.6 coming soon (hopefully — we still have a few bits and pieces to finish off), we’re starting to look ahead towards the next major branch: DMDirc 0.7. The 0.7 branch has several major new features, namely sever lists and a revamped update system, both of which have extensive core and UI components. There are also a large number of smaller features and enhancements: we have over 80 issues open for the 0.7 branch, and this number is growing fairly steadily.
With the upcoming version 0.6 of DMDirc (we know that it’s been a while since the last big release, we’ll blog about that soon) we have added support for even more operating systems.
As previously mentioned, once Apple released Java6 for OS X I set about updating the scripts we use for building the installers and nightlies so that we could support OS X officially for DMDirc 0.6.
A security vulnerability has been discovered in DMDirc. The implementation of URL handlers allow specially crafted URLs to execute arbitrary programs on the host system. Only custom URL handlers (those listed as “custom commands” in the ‘URL Handlers’ section of the preferences panel) are vulnerable, and the user has to click on a malicious URL in order for the vulnerability to be exploited. The DMDirc developers have only been successful in using the vulnerability to launch argument-less programs on Linux, but we cannot guarantee that other platforms are not affected.
As you may have noticed if you're a regular visitor, the DMDirc website has recently been given a lick of paint. There is now a common header across all of the DMDirc sites (the main website, addons site, bug tracker and blog), which allows easy navigation between all aspects of the DMDirc website, and is a lot better looking than the old header, too!
We have also relocated our subversion repository from its previous home at Google's Project Hosting service, to our own server. We made this switch because of the fairly poor uptime of Google's offering, and the seemingly random delays between commits being made and announcement e-mails being sent. If you have the DMDirc source code checked out from our subversion repository, follow the instructions here to migrate to the new repository.
Now that Apple have re-released their ‘developer preview’ of Java 6, we can begin work on improving DMDirc’s compatibility with OS X. Currently the release only works on 64-bit Intel processors (Xeons or Core2Duos - not CoreDuos, CoreSolos or PowerPCs) running Leopard. They had previously released a developer preview for Tiger, but we do not have access to it, so are unable to tell how well it works with DMDirc (if at all).
In DMDirc 0.5 we introduced a feature described in the release notes as “intelligent tab completion for commands” (introduced in this blog post), which allowed commands to tell the tab completer about the arguments that they’re expecting. In that incarnation, commands can specify a bunch of extra words to add, and can toggle whether the default tab completion targets (nicknames, channel names, command names) are used.
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.
The latest major change we’ve added to the 0.6 branch is a revamp of the preferences system. The original purpose of the revamp was to shift a large amount of logic out of the UI and into the main client core, so that if/when we have additional user interfaces written, they don’t have to duplicate several hundred lines of code to produce a preferences dialog.
Since DMDirc 0.5.1, the Linux and Windows installers have received several major updates.
I’ve just committed changes to DMDirc that allow you to make use of what I call “condition trees” in actions. These basically allow you to specify how conditions should be evaluated. In DMDirc 0.5.1 (and earlier), all action conditions had to be true in order for the action to be executed. Condition trees allow you to use any combination of AND, OR, NOT and brackets to alter this behaviour.
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.
We have just released version 0.5 of DMDirc.
Further to the changes to the actions UI previously mentioned, there are now several more enhancements: one exposing substitutions and two UIs wrapping around actions simplifying common tasks — aliases and performs.
DMDirc has now entered Feature Freeze for the 0.5 release (for more information about our release cycle, see this blog post).
As part of our aim to make DMDirc into a good, cross-platform IRC Client, it was decided early on that it required an actual installer to make packaging/distributing/installing the client much easier.
One of the best things about DMDirc is, in my opinion, its robust actions system. Actions allow you to do virtually anything you can do in a far more complex scripting language, with the benefit of being fairly easy to hide behind a nice user interface.
One of the first new features introduced after the release of DMDirc 0.4 was the intelligent command completion system. This allows commands to tell the tab completer about their arguments. The best way to explain this is with a few examples:
We have just released version 0.4 of DMDirc :) (Applause).
As we’re preparing to release 0.4, I thought I’d take the time to describe how the DMDirc release cycle works.
Ok, so you’ve read about actions and seen just how amazingly useful they are, maybe you’ve even used them and feel like donating your life savings to the creator? (It’s me, honest! Don’t believe Chris!) Well then, what happens when you come across something that you just can’t manage to do with actions? (It’s rare, but it happens — though if you believe it should be possible with actions let us know in #DMDirc on Quakenet and we’ll see what we can do). The answer is simple: Plugins :D
Following on from my previous post, the front-end for actions is just about complete. Here are some preview images:
‘Actions’ are one of the major features we’ve introduced since DMDirc 0.3 was released. Actions provide a way for the user to make the client respond to events in certain ways, and basically provide a subset of the functionality of scripting in other clients (e.g. mIRC), but in a much more user-friendly manner.
This is a brief introduction to DMDirc’s developers.
Welcome to the DMDirc development blog. The idea behind this blog to allow us, the developers, to show off new features we’re implementing, discuss various aspects of IRC and writing an IRC client, and to get some feedback from our users. We’ll try to make semi-regular posts to keep everyone up to date with the client’s status.