Dribble, an open-source work flow server

Download dribble from here.

Dribble's Savannah page.

The current ToDo list can be viewed here.

This is an extract from the README file in the distribution tar ball.

Q: What is work flow then?
A: Basically machine-handled shuffling of paper. Imagine an office, where every quxx-document must first pass an initial check by someone, then handed over to Procurement, who take one copy of the document, hands the original to Lisa and the copy to Steve. They both do something with it and hand both original *and* copy over to Implementation, who do what's been noted down and then it's finished.

Dribble takes care of the "hand over", "copy" and "finished" operations in its own stable storage.

Q: Is Dribble good?
A: Actually, no. It uses the file system as its stable storage. It does have possible problems handling collections of documents and if it can, it depends on unpublished semantics of hard links to symlinks.

It also requires *all* stable storage (in one playground) being on the same, locally mounted, physical file system, due to the fact that it uses the file system both as persistent storage as a lock source (mkdir() is your friend) and that specific locking mechanism doesn't work all that well over NFS.

Q: Why write it at all, then?
A: Primarily because I could... Well, not only, it's one of the things that seem missing from the OSS world that exists in multiplicity over there, in the commercial world. And without a first stab, no one will write a *good* library.
Q: And why name it "Dribble"?
A: It's fairly obvious ain't it? "Work flow"/"Not that good" -> "Work dribble" -> "Dribble"
Q: I get spurious core dumps
A: Still? The last seen core dump causes were (1) shoddy code in wfshell that over-stepped and generally mangled Items and (2) shoddy error checking in read_all_items and (3) shoddy code in wfshell that didn't check for the right return values.

To send a bug report, please do the following:

  1. Make sure *everything* in the binary (at least everything from dribble's code base) is debug-compiled
  2. Re-create the dump (preferrably from within gdb)
  3. Send me the output from backtrace and try to describe what you (or the code) were/was trying to do.
Q: What is the release schedule of dribble?
A: basically when I've whacked the code enough to have added something significant, functionality-wise or stability-wise.