The need for a modern source-code management strategy in the distributed open-source community is paramount. The benevolent dictatorship model of open-source maintainers is only quasi-stable, but it is far better than the other extreme: the chaos of democratic code development.
The best available compromise is the concurrent versioning system (CVS), which introduces proctored code merging into source code management. CVS is ideally suited for worldwide open-source development, and the world is ready for monographs that address the management issues that Per Cederqvist explicitly avoided in his fine 164-page postscript manual distributed with the CVS tar-ball. What is the role of a maintainer/manager in establishing test protocols for code merges? What minimal functional level of developer communications is necessary for merges to remain stable? Is a maintainer-less release possible?
These questions go largely unanswered in Karl Fogel's new Open Source Development with CVS. Fogel's 300-page book consists of chapters alternating between CVS basics and common code maintenance issues. He includes a few anecdotes from open-source lore and lots of nonspecific commonsense guidelines on team software development.
Fogel is at his best when he is engaging us in thinking about what should and should not be under CVS control. He points out that complex relationships exist between developing code and its dependencies on intimately related applications, such as build tools themselves (gcc, autoconf) or partner applications (e.g., the server's client or the client's server). His brief discussion of strategies is too short to be satisfying.
Frustratingly, this book is chock-full of postmodern self-indulgences, such as his boasting reverence for technological ignorance. The discipline needed by good maintainers is missing here; Fogel's informal prose is often grating, and his copious parenthetical remarks are distracting or bullying (they sure are); one wonders where his editor was. Ultimately, his management arguments boil down to an endorsement for the benevolent dictatorship model--a safe conclusion, but one that seems not to use CVS's merging capability for all it's worth. To the question of how to run a project, he responds, "Well, we're all still trying to figure that out, actually." True, and he isn't there yet, but at least he has the questions right. --Peter Leopold
About the Author
Karl Fogel (Chicago, IL) co-founded Cyclic Software in 1995. He now works as a programmer in Chicago, IL and is a member of the CVS development team.