I have a few longer posts that I want to write, but none of them are coming together in my head right now, so I'll put together a quick note about Prophet and SD, by Jesse Vincent and Chia-liang Kao. Prophet is a replicated, peer-to-peer database (I'm cutting its sales pitch short, see the website for more), and SD is a bug tracking system written on top of it.
I had looked at SD a year or so ago, and then forgot about it until I read a post by gugod describing how to use SD to interact with rt.cpan.org, through SD's helper script
git-sd. This caught my interest, of course, because I use rt.cpan.org for all the CPAN distributions I maintain.
What makes SD interesting to me, at least more so than other local-storage ticketing systems like ticgit, is that it has adaptors ("foreign replica" classes, in Prophet terms) for several other bug tracking systems, including (as mentioned above) RT and Trac, both of which we use at work.
I like the idea of having tickets available right there with my repository, and I especially love not to have to switch contexts, fiddle with my web browser, etc., every time I finish one bug and I'm ready to move on to the next, but I don't have the luxury of telling all my coworkers that we're switching to some new ticketing system. The fact that I also get free disconnected operation is just icing on the cake. SD feels like git in this regard -- distributed, customizable, and able to play well with existing systems instead of needing a complete change-over.
Since reading gugod's post and getting excited about SD, I've tweaked
git-sd a little, and pushed my patches back upstream. In particular,
git-sd now defaults to using
GIT_DIR/.git/sd for its replica, instead of requiring that you manually configure one, which streamlines the process of setting it up. I have plans for a few more things that I want to do before I use SD heavily:
- make it easy to store username and password per-replica
- give replicas a short name to refer to for push and pull, like
SD and Prophet are relatively young, but so far almost all the problems I've run into have been minor interface issues rather than big showstopping bugs. Here's the only thing I'm aware of that might fall into that category:
<obra> soooo close to trac roundtrip tooAnd now that Jesse has achieved enlightenment through explaining the problem to me, I expect it'll be fixed quickly. So glad I could help! :)
<confound> which would be great for me
<confound> since we use trac at work
<obra> I have one crippling bug.
<obra> I just need a 4 hour block of time
<confound> what is it?
<obra> when you create a ticket in sd, push to trac and pull from trac, it doesn't properly map the uuid
<obra> I know what it is now
<obra> (explaining problems)++
(originally posted at OpenSourcery)