[Zope-CMF] Versioned Documents (was: Workflow first cut is ready)

Guido van Rossum guido@digicool.com
Wed, 23 May 2001 20:12:58 -0400


> Yes.
> 
> I've been thinking about a Versioned Document capability a lot recently as
> I've been trying to understand how to use CMS as a Document Management
> system. Most of the pieces of Document Management are there (especially now
> with customizable workflow). One missing piece is Versioned Documents.
> 
> Versioned Documents differ from Zope Versions in several respects.
> 
> 1. Versions older than the current version must continue exist until they
> are explicitly deleted. You don't want a Pack operation to clean them out
> inadvertently.
> 
> 2. Older versions may need special treatment in the catalog. You may not
> want them cluttering the catalog; you may or may not want them retrievable
> via a catalog search.
> 
> 3. Older versions must be retrievable. For example, we sometimes need to
> send older manual versions to customers who are using older versions of our
> products.
> 
> 4. It may be desirable to put a slight barrier in front of older versions,
> so that an older version is not retrieve accidently in place of a newer
> version. Or in other words, by default you always get the most current
> document, but you can get an older one with some additional effort (or
> syntax).
> 
> 5. In some respects, all versions should be accessible by the same ID. For
> example, when a new version of a document is published, users should get the
> newest version when following the URL that they stored for an older version.
> In other respects, each version must be separately identifiable; for
> example, in a workflow various versions of a document may exist
> simultaneously with different workflow status.
> 
> I hope others will chime in if I missed any essential points.
> 
> -- Loren

Maybe writing a Zope storage adapter front end for CVS would be the
right solution here?  I have to admit that for certain kinds of
documents (e.g. source code) I will not tolerate anything but CVS for
storage.

I have no idea how realistic this idea is.

--Guido van Rossum (home page: http://www.python.org/~guido/)