|
|
Subscribe / Log in / New account

Development

The SD distributed bug tracker

By Jake Edge
March 23, 2011

On last week's Development page we looked at the Fossil version control system, with one of its distinguishing features being the inclusion of distributed bug tracking as part of the tool. Another distributed bug tracker has recently come to our attention, and that is Simple Defects, or SD for short. There are a number of different distributed bug trackers out there, with Bugs Everywhere seeming to hold the role of "leader of the pack", but a brief introduction to SD seems in order.

So far, distributed bug tracking (DBT) hasn't taken off quite like distributed version control systems (DVCS) did, but there is still a fair amount of interest in the idea. In some ways, it feels like the DBT communities are still feeling their way, much like the pre-2005 DVCS world, and that at some point, the right combination of features will come about in one or more projects (much like the broadly similar feature sets of Git, Mercurial, and Bazaar did). Once that happens, DBT may find its way into more and more projects.

The basic idea of DBT is that centralizing bug tracking on one system makes it difficult for disconnected developers to easily handle editing bugs while they are fixing the code. There are (at least) two ways to approach the problem, either by somehow keeping the bug reports and code in the same repository (which is Fossil's approach) or by having a separate repository for bugs that can be synchronized in ways similar to that of a DVCS (the approach of SD and Bugs Everywhere). The latter approach has the advantage of being able to work with multiple version control systems, but it has the disadvantage of requiring developers to manage their code and bug repositories separately.

SD is written in Perl to sit atop the Prophet distributed database. Both Prophet and SD are available on the Comprehensive Perl Archive Network (CPAN), but the developers recommend getting them from the Git repositories if possible due to the rapid development pace. The development logs seem to bear that out as there hasn't been a release since Prophet and SD 0.7 in August 2009—though there seem to be more recent CPAN updates—while the Git logs show progress as recently as early March.

One thing that can't be said for SD (or Prophet) is that they are overly burdened with documentation. That may tend to chase away potential users, but the terse Using SD page does cover many of the topics that users are likely to be interested in. The basics should be familiar to anyone who has used a DVCS, as you clone a ticket repository with:

    $ sd clone --from http://example.com/path/to/sd
or initialize a new repository with:
    $ sd init

As with Git et al., you synchronize from a remote repository with a pull sub-command, and update remotes using publish (instead of Git's push). Bug tickets are created with the unsurprisingly named:

    $ sd ticket create
command, which opens your text editor with a template to create the bug. There are, of course, various commands to search and update bugs, as well. The browser sub-command will put SD into server mode and start up a web browser to search and edit bugs. SD also provides ways to synchronize its bugs with other systems like Trac, GitHub, Google Code, Hiveminder, RT, and others.

Overall, it seems like an interesting system for projects that are looking for a simple DBT that doesn't combine code and bugs into a single repository. That is one of the advantages of SD, at least for Lars Wirzenius, who made the blog post that introduced us to SD. He also notes that it seemed to him to be the most mature of DBT systems currently, which is a little surprising given the status of Bugs Everywhere. The ability to handle bugs from the command line is another advantage that he cites.

The lack of documentation is somewhat intimidating, and overall the projects could use a bit of work on their web sites. The wiki is largely a placeholder, and the project pages have just the bare essentials. In fact, for Prophet, even the bare essentials appear to be lacking, which is unfortunate as the description sounds intriguing: "Prophet is a new kind of database designed for the post Web-2.0 world. It's made to let you collaborate with your friends and coworkers without needing any kind of special server or internet provider." It sounds like something that might prove useful to projects like the Freedom Box.

While SD and Prophet may still have quite a ways to go before being ready to handle larger projects or ones with different needs, they do currently work for some projects. For Perl programmers with an interest in DBT (or a distributed database), they might provide a nice opportunity as a project to contribute to. For others who just want a simple DBT to use, its probably worth taking a peek at SD.

Comments (3 posted)

Brief items

Quote of the week

Object-oriented programming is eliminated entirely from the introductory curriculum, because it is both anti-modular and anti-parallel by its very nature, and hence unsuitable for a modern CS curriculum. A proposed new course on object-oriented design methodology will be offered at the sophomore level for those students who wish to study this topic.
-- Carnegie Mellon University professor Robert Harper

Comments (6 posted)

Django 1.3 released

Version 1.3 of the Django web framework has been released. New features include class-based views ("This means you can compose a view out of a collection of methods that can be subclassed and overridden to provide common views of data without having to write too much code"), better logging, better unit testing support, a number of template improvements, and more; see the release notes for details.

Comments (1 posted)

GNOME 3.0 Release Candidate

The first release candidate for the GNOME 3.0 release is now available. A lot of changes have been funneled into this release, including a pass at proper multiple monitor support, but that's apparently at an end. "Hard code freeze is also in place, no source code changes can be made without approval from the release-team. Translation and documentation can continue."

Full Story (comments: none)

Firefox 4 released

Version 4 of the Firefox browser has been announced. "The latest version of Firefox introduces a sleek new look that lets Web content take center stage. With features like App Tabs and Panorama, Firefox makes it easier and more efficient to navigate the Web. Firefox delivers industry-leading privacy and security features like Do Not Track and Content Security Policy to give users control over their personal data and protect them online."

Comments (32 posted)

LibreOffice 3.3.2 is now available

The LibreOffice 3.3.2 release is out. "The community of developers has been able to maintain the tight schedule thanks to the increase in the number of contributors, and to the fact that those that have started with easy hacks in September 2010 are now working at substantial features. In addition, they have almost completed the code cleaning process, getting rid of German comments and obsolete functionalities."

Full Story (comments: 23)

Newscoop 3.5.2 released

Newscoop is a journalism-oriented content management system; LWN reviewed it in 2009 when it used its former name "Campsite." The 3.5.2 release is available with a number of enhancements and some security fixes.

Comments (none posted)

PHP 5.3.6 released

PHP 5.3.6 is available. It's a stability release, but it includes a number of fixes with CVE numbers attached, so it would appear to be a worthwhile upgrade. Note that PHP 5.2 is no longer supported, so there will be no upgrade for that branch.

Full Story (comments: none)

Newsletters and articles

Development newsletters from the last week

Comments (none posted)

The Linux graphics stack from X to Wayland (ars technica)

Ars technica looks at the history of X and the birth of Wayland. "A key feature of Wayland is the use of a rendering API that does not have any dependencies on X. To maintain compatibility, the X Server itself is made into a Wayland client, and all of the X rendering is fed directly into Wayland. The Wayland package, like X before it, defines a protocol only. The architecture of Wayland, with its ability to function alongside X, provides an easy migration path for existing and even future planned X clients. The X Server can run as before, servicing all of the legacy clients."

Comments (47 posted)

Page editor: Jonathan Corbet
Next page: Announcements>>


Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds