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:
- Make sure *everything* in the binary (at least everything from
dribble's code base) is debug-compiled
- Re-create the dump (preferrably from within gdb)
- 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.