September 20, 2010

Team issue tracking with Redmine


Two years ago, while struggling with SOX audits, one of the things I was asked to do by the auditors was to deploy an issue tracking / helpdesk program for my IT team. There are a whole bunch of issue tracking programs available, but my entire IT team consists of five people, including me. All of the issue tracking programs I looked at were too complex, too expensive, not internationalized (e.g., doesn't support dd/mm/yy format), or all of the above.

I didn't forget the open source projects such Trac, Mantis, OTRS, or Redmine, but they all seemed to experimental or overly complex due to feature creep, and I really wanted something online that could be accessed from anywhere. I kept stalling this project but I've kept my eye on things for the past two years. Recently though, my projects have gotten complex enough that I actually needed an issue tracking system myself, and not just for satisfying the auditors.

Redmine 1.0.1 ("very stable release") was released not long ago, and when I looked at it, it has just the right features for my team to use. Oh, before I finally decided on Redmine, I was almost going to go with Pivotal Tracker. Pivotal Tracker is free and has just the right features for me as well, but the website and its AJAX interface was somewhat slow, but this maybe due to my Internet connectivity.

I decided to install BitNami's native Redmine stack for Windows since I already have some Windows terminal servers. I could've rolled my own Linux server, but those Windows servers are mostly idle enough to run an additional service. I've already used BitNami many times in the past, and BitNami Redmine installed without a hitch.

Unfortunately, when I tried to set up email notifications according to these instructions, it didn't quite work for the Windows native stack version, probably because some of the expected commands such as ruby or git aren't automatically in the path, but I kept getting "plugin not found error".

My solution was to download the TLS plugins files as a source archive directly from the git repository, and extract it into "C:\Program Files\BitNami Redmine Stack\apps\redmine\vendor\plugins". I also renamed the extracted folder into "action_mailer_optional_tls" like the git installer does, but I don't know if that's necessary.

After that I made the necessary changes to email.yml according to the instructions in the website above, and it all worked, right on the first try.

(NOT! It not just didn't work on the first try, I spent like three hours on this thing with like five different versions of smtp_tls.rb and tls_smtp.rb placed into various folders, I tried different settings in email.yml, I tried editing production.rb and environment.rb to include the plugin. All because I read that the plugin wasn't necessary any more since TLS support is now built-in, etc. etc. Finally I downloaded BitNami's openSUSE Redmine virtual appliance and installed the plugin there using git to see which files get changed, then manually did the installation in Windows. No thanks to outdated and contradictory documentation floating around on the web.)

Ahem, anyway, while writing this I realized Redmine doesn't have an official logo. I really like the one Cyber Sprocket Labs uses, plus the favicon displayed by Redmine is also the same red arch. I also installed the Watersky theme to remind myself of the babes at the beach rather than burying myself in managing projects. (See picture above.)

Finally, Redmine does have an issue accepting date formats in our local preferred dd/mm/yy format in date input fields. But this is a relatively minor issue since all date input fields have a handy pop-up date picker tool.