[Zope-Coders] Zope CVS

Matthew T. Kromer matt@zope.com
Tue, 30 Oct 2001 11:58:02 -0500


Tom Deprez wrote:

>>Hi,
>>
>>Is there a way to download some sources from the cvs from somewhere behind
>>
>a
>
>>firewall?
>>
>>I want to check out the CMFCollector, but for this I need to install:
>>
>>   - The CMF
>>
>>     http://cmf.zope.org - recent (as of 10/10/2001) CVS HEAD
>>     checkout, or 1.2 or better (not yet released as of Oct 15, 2001).
>>
>>   - CMF/CMFDecor provisions for ZPT, including use of the ZPT skin as the
>>     default skin (settable from the portal_skins 'Properties' tab).
>>
>>   - CMF/DCWorkflow
>>
>>     Proper operation depends on a patch to DCWorkflow as of Oct 15,
>>     2001.  The patch is in the CVS version (it's DCWorkflow.py, rev
>>     1.8), and will be in CMF 1.2.
>>
>>I assume that when I download the latest CMF sources, that I will be able
>>
>to
>
>>test the CMFWorkflow.
>>Unfortunately, I don't see a way to download the whole CMF branch. Is
>>
>there
>
>>a way?
>>

Hmm... let me pose a possible solution and get feedback.

Nightly, we are already doing a checkout of the Zope trunk and/or a few 
branches and running the testrunner script against this.

It occurs to me, that a modification of this to create a tarball of the 
checked out code before the testrunner runs could easily be used to 
create a 'snapshot' file/directory.  It may then be possible to save the 
snapshot back into CVS as a large binary file...

This is somewhat cheezy, since CVS isnt a great place to store binary 
files (particularly not huge tarballs), yet since http://cvs.zope.org/ 
is available already, it makes the download of a particular 
tarball/snapshot fairly easy.  I see the biggest shortcoming is 
reclaiming space in the repository from stale versions.  However, maybe 
there is a good way to rotate snapshots or something (or periodically 
delete subtrees from the repository) so that there isn't suddenly a 
massive accumulation of tarballs.  

The alternative would be to ftp tarballs up to zope.org, but I like CVS 
better for this; it seems to me that it would be slightly better to use 
CVS than the ZODB for storing tarballs which get generated automatically 
and frequently.

So, conjecture a repostory directory /snapshots, which contains 
subdirectories made by date, e.g  /snapshots/20011030 which then 
contains various tarballs like Zope-trunk.tar.gz, 
Zope-2_4-branch.tar.gz, CMF.tar.gz, CMFDECOR.tar.gz, etc...  A cron job 
on the repository can periodically nuke the old directories right out of 
the repository, without having to have CVS go through the gymnastics of 
trying to track versions of binary files.

A refinement of this might be to also save the testrunner output with 
the tarball, e.g. Zope-trunk.testrunner.OK for testruns that fail, or 
Zope-trunk.testrunner.FAIL3 (for three failure cases).