Weekend Project: Bug Out with Entomologist

102

Bug trackers are great. They are a critical tool for open source development – as a collaboration medium for teams, as a way for projects to communicate back-and-forth with users, and as an organizational tools for individual developers. But as open source software spreads further and further, one inevitably finds oneself with a bit of a Web 2.0 problem – every major project uses its own, separate bug tracker. The more projects you’re involved with, the easier it is for information to get lost among all the clutter and noise. That’s where Entomologist comes in, providing one interface for multiple bug-tracking systems, whether you are a developer managing your code or a user following progress.

The Entomologist project offers a Qt-based desktop client that can connect to multiple bug trackers, managing your account information separately for each, but providing you with tools to keep your to-dos all in one place. In other words, you can use one app to keep track of the bugs assigned to you, the bugs you reported, or the bugs that you are monitoring for your own information.

In theory you could keep a browser window open with tabs for every project that you interact with, but that is far less practical. For starters, all of the tabs have to remain open. In addition, you generally have to navigate to separate pages for each function (checking bug status, adding a comment, changing a field for triage). Perhaps most importantly, thanks to HTTP, you periodically need to re-authenticate every single account, interrupting your workflow.

Because Entomologist both maintains the login information for each account and provides one-click, native-access to the bug management functions, it bests the tab-jungle approach on all counts. It also enables some cross-project functionality that only a unified interface could access, although there is still plenty of room for this feature to grow.

Getting Started

Entomologist is cross-platform; there are binaries for proprietary OSes as well as packages for Debian, Fedora, Mandriva, OpenSUSE, and Ubuntu. If your distribution is not on that list, you can also grab the source code from the project’s Git repository. The latest release is 1.1.2. You will need Qt 4.6 in order to compile it. Entomologist Overview

When you first launch Entomologist, you will need to configure the bug tracker accounts that interest you before you can do any real work. You can add them through the File -> Add Tracker menu item. Currently, Entomologist supports Bugzilla 3.2 and newer, Trac 0.12 and newer, and MantisBT. You will need to supply your account credentials as well as the bug tracker type and server URL for each tracker you add; fortunately you can also assign each one a helpful name.

After you add the new tracker account, Entomologist will synchronize, grabbing your reported and assigned bugs. You can configure the application to periodically re-sync, which is good for those projects you check less frequently. By default, each project tracker that you add gets a tab of its own, which shows all bugs associated with your account – your assignments, your reported bugs, your CC-list bugs, and those that you monitor voluntarily. You can toggle each category through the Show menu. One of the perks of working with this information in a native app is that you can quickly sort on any column – date, severity, status, etc. The list of attributes varies depending on the bug tracking system, of course.

You can double-click each bug to pull up a detailed report, including the original description and the full comment log. From this view you can add new comments as well as alter the bug’s attributes (assuming you have the appropriate permissions on the server, that is). Any changes you make are highlighted in red, and will not be pushed to the server until you click on the upload button. You can undo your adjustments before uploading them if you change your mind, thanks to the “Revert Changes” button.

Regrettably, this detail view is also the source of the one serious bug I found in Entomologist itself – for the comment thread, the application incorrectly pulls in the text and background colors from the system theme, which in a dark UI theme means you get unreadable light-on-white text. Strangely, in the description field the text is also not selectable, which is inconvenient if you want to copy the text, but also makes it impossible to bypass the bad color scheme by selecting the entire text block, a trick that works elsewhere. I have been using dark UI themes consistently for several years now, and I can attest to the fact that Entomologist is far from alone in making this mistake, but it still renders the interface virtually impossible to read, and it needs fixing.

Pro-Buggin’

Simply consolidating a horde of unrelated bug lists from incompatible projects in a desktop application would make Entomologist a nice utility, but it goes further. For starters, you can initiate searches on any of the configured trackers – or on all of them collectively. The results are inspect-able just like your personal bugs, and you can add comments or change attributes (again, assuming you have sufficient privileges). This allows you to search for bugs by content, and to perform triage on a project’s unconfirmed or unsorted reports.Entomologist Detail

The application also offers a to-do list feature, which lets you drag-and-drop bugs from the bug list window onto a separate panel. The to-do list pane opens up as a sub-window to the left of the main bug view (although it can be detached); presumably this is to make drag-and-drop more convenient. When you drop a bug onto your to-do list, you get a couple of additional fields for personal use – a target date that you can pick, and a “Completed” checkbox.

You can actually create multiple, distinct to-do lists (a feature which borders on overkill in my book), and you can synchronize your lists with Google Tasks. I would also like to see a little more detail provided in the “completion” field – all or nothing is barely helpful. But the developers say that they are working on expanding the feature set, so perhaps there are more task-management features in the works.

Last but not least, although so far we have examined only the desktop client app, the Entomologist project also has a mobile client in the works. So far there are Android and Blackberry downloads available (no word yet on other platforms). Interesting to note, however, is that the mobile clients do not support managing multiple, heterogeneous bug trackers in a single app – the clients are one-tracker-at-a-time only, and for the moment at least, only Trac is supported.

Your Future Insect Overlords

Speaking of what’s in the works, the project has posted a roadmap online that gives a brief overview of where things are headed. Improvements to search are in the works, so that you can search on specific key fields – such as restricting your search term to bug-submitters by searching for reporter:foobar. Additional issue trackers are in the works as well, which is probably a bigger improvement – GitHub is coming first, with others to follow.

In the medium term, the project wants to offer a combined, unified view of all of the bugs the user is subscribed to. That will no doubt help busy coders by putting everything in plain sight at the same time. In addition, the to-do list synchronization feature is slated for an expansion as well, with support in the works for the Remember The Milk service and for WebDAV servers. There are also more general plans for adding scriptable actions and perhaps support for plug-in modules.

Ultimately, however, Entomologist already does the most important part of the job, which is decoupling bug trackers from the browser. Most of the trackers in use in the wild offer good collaboration features, but very few people have the luxury of only needing one.

Combine that with the ability to work offline, and the more powerful sorting and searching features of a native desktop app, and you gain productivity. It will be interesting to see where the mobile version and the future enhancements to the desktop edition take the concept, but it is already useful enough to start using if you have bugs to wrangle.