Package: zope.release
Zope 3 Controlled Package IndexThis package has been developed to support the maintenance of a stable set of
Zope project distributions. It manages the controlled packages configuration
file and supports the generation of buildout configuration files that can be
used by developers.Another use of this package is to use it for testing new distributions against
the index. Here is the workflow for testing a new package against stable set:Install the correct version of this package.Download the version of this package that manages the stable set that
you are interested in. For the Zope 3.4 release, a 3.4 branch exists:$ svn co svn://svn.zope.org/repos/main/zope.release/branches/3.4 zope3.4
$ cd zope3.4Bootstrap the checkout:$ python ./bootstrap.pyRun buildout to create the scripts:$ ./bin/buildoutRun thebuildout.cfggeneration script to build a configuration
file that can be used for testing:$ ./bin/generate-buildoutFrom the generated configuration file, you can now build a testing
environment.Enter the test directory and create a buildout:$ cd test
$ python ../bootstrap.py
$ ./bin/buildoutRun all the tests to verify that all tests are initially passing:$ ./bin/test -vpc1Modify thebuildout.cfgto look for your the new distribution to be
tested:Change the version number of the package of interest in the “versions”
section.Alternative:Check out the new distribution from SVN.Add a “develop path/to/my/package” line in the “buildout” section ofbuildout.cfg.Run the tests, making sure that they all pass.Modifycontrolled-packages.cfgto reference the new version.Find the package that you are interested in and add the new of the
package in theversionsattribute of the package’s section.In the[KGS]section, increase the version number in theversionattribute.Upload the new KGS release:$ cd ..
$ ./bin/uploadOnce the files are uploaded, a crontab-job, running every minute, will
detect the changes incontrolled-pages.cfgand will generate the new
controlled package pages.Update the svn:externals in the Zope3 3.4 branch:$ svn co svn+ssh://svn.zope.org/repos/main/Zope3/branches/3.4 Zope3-3.4
$ ./bin/update-tree
$ cd Zope3-3.4
$ svn diff
$ svn commitNote: I think the process is still a tiny bit too long. I probably write a
script that makes testing a new version of a package easier, but let’s see
whether this process is workable first.Zope Release ToolsThis package provides some tools to manage Zope 3 releases. It extends the
scripts provided byzope.kgswith Zope-specifc scripts, such as updating
the Zope 3 source tree and uploading files to the download location.Here is an examplatory controlled packages configuration file:>>> import tempfile
>>> cfgFile = tempfile.mktemp('-controlled-packages.cfg')
>>> open(cfgFile, 'w').write('''\
... [DEFAULT]
... tested = true
...
... [KGS]
... name = zope-dev
... version = 1.0.0
... changelog = CHANGES.txt
... files = zope-dev-1.0.0.tgz
...
... [packageA]
... versions = 1.0.0
...            1.0.1
...
... [packageB]
... versions = 1.2.3
...
... [packageC]
... # Do not test this package.
... tested = false
... versions = 4.3.1
... ''')>>> import os
>>> dir = os.path.dirname(cfgFile)>>> open(os.path.join(dir, 'CHANGES.txt'), 'w').write('Changes')
>>> open(os.path.join(dir, 'zope-dev-1.0.0.tgz'), 'w').write('TGZ')Uploading FilesOnce the generated files are tested and ready for upload, you can use the
upload script to upload the files to the KGS. Since we do not actually want to
upload files, we simply switch into dry-run mode:>>> from zope.release import upload
>>> upload.DRY_RUN = TrueUsually we only need to upload the controlled packages file, since site script
of thezope.kgspackage will do the rest for us.>>> upload.main((cfgFile, 'download.zope.org:/zope-dev'))
scp ...zope-dev-1.0.0.tgz download.zope.org:/zope-dev/zope-dev-1.0.0.tgz
scp .../CHANGES.txt download.zope.org:/zope-dev/CHANGES.txt
scp ...controlled-packages.cfg ...controlled-packages.cfgUpdating the Zope 3 TreeSince we still want to create a Zope 3 source tree release, we need to be able
to update its externals using the information of the controlled packages
file. Since this script is clearly Zope3-specific, we need a new controlled
packages config file that contains actual packages:>>> import tempfile
>>> zopeCfgFile = tempfile.mktemp('-cp.cfg')
>>> open(zopeCfgFile, 'w').write('''\
... [DEFAULT]
... tested = true
...
... [KGS]
... name = zope
... version = dev
...
... [ZODB3]
... versions = 1.0.0
...
... [ZConfig]
... versions = 1.1.0
...
... [pytz]
... versions = 2007g
...
... [zope.interface]
... versions = 1.2.0
...
... [zope.app.container]
... versions = 1.3.0
... ''')We also need to stub the command execution, since we do not have an actual Zope
3 tree checked out:>>> cmdOutput = {
...     'svn propget svn:externals Zope3/src': '''\
... docutils   path/to/docutils
... pytz       path/to/pytz
... twisted    path/to/twisted
... ZConfig    path/to/ZConfig
... ZODB       path/to/ZODB''',
...     'svn propget svn:externals Zope3/src/zope': '''\
... interface  path/to/zope/interface''',
...     'svn propget svn:externals Zope3/src/zope/app': '''\
... container  path/to/zope/app/container''',
... }>>> def do(cmd):
...     print cmd
...     print '-----'
...     return cmdOutput.get(cmd, '')>>> from zope.release import tree
>>> tree.do = doLet’s now run the tree update:>>> tree.main((zopeCfgFile, 'Zope3'))
svn propget svn:externals Zope3/src
-----
svn propset svn:externals
  "docutils svn://svn.zope.org/repos/main/docutils/tags/0.4.0/
   pytz svn://svn.zope.org/repos/main/pytz/tags/2007g/src/pytz
   twisted svn://svn.twistedmatrix.com/.../twisted-core-2.5.0/twisted
   ZConfig svn://svn.zope.org/repos/main/ZConfig/tags/1.1.0/ZConfig
   ZODB svn://svn.zope.org/repos/main/ZODB/tags/1.0.0/src/ZODB"
  Zope3/src
-----
svn propget svn:externals Zope3/src/zope
-----
svn propset svn:externals
  "interface svn://svn.zope.org/repos/main/zope.interface/tags/1.2.0/src/zope/interface" Zope3/src/zope
-----
svn propget svn:externals Zope3/src/zope/app
-----
svn propset svn:externals
  "container svn://svn.zope.org/repos/main/zope.app.container/tags/1.3.0/src/zope/app/container" Zope3/src/zope/app
-----Zope KGS HistoryNOTE: The releases of this package are synced with the Zope 3 releases.3.4.0 (2009-01-29)Upgraded setuptools to 0.6c9Upgraded ZODB3 to 3.8.1Upgraded zc.resourcelibrary to 1.0.1Upgraded zope.app.authentication to 3.4.43.4.0c7 (2008-09)Upgraded zope.server to 3.4.3Upgraded zope.app.server to 3.4.1 and 3.4.2Upgraded zope.publisher to 3.4.5, 3.4.6Upgraded zc.zope3recipes to 0.6.2Upgraded zope.testing to 3.5.6Upgraded z3c.form to 1.9.0Upgraded z3c.formui to 1.4.1Upgraded z3c.formdemo to 1.5.3Upgraded z3c.formjs to 0.4.0Upgraded z3c.formjsdemo to 0.3.1Upgraded zdaemon to 2.0.2Upgraded zope.app.locales to 3.4.2, 3.4.3, 3.4.4, 3.4.5Upgraded z3c.traverser to 0.2.2, 0.2.3Upgraded zope.annotation to 3.4.1Upgraded zope.app.file to 3.4.3, 3.4.4Upgraded zope.cachedescriptors to 3.4.1Upgraded zope.securitypolicy to 3.4.1Upgraded zc.buildout to 1.1.1Fixed backwards incompatible change in handling of environment option.Seems to have fixed sporadic test failures under high system load3.4.0c6 (2008-08-14)Upgraded zope.publisher to 3.4.3.Upgraded zope.app.authentication to 3.4.3. Removed previous versions,
as they are not compatible with zope.app.container >= 3.5.4Upgraded zope.app.container to 3.5.6Upgraded zope.testing 3.5.1 to 3.5.4.Upgraded zc.buildout 1.0.0 to 1.1.0.New global buildout option, unzipRecompiles pyc files to have correct paths.Upgraded zope.proxy 3.4.0 to 3.4.2: fixes problems using Python 2.5 on
AMD64.Upgraded zope.security 3.4.0 to 3.4.1: fixes problems using Python 2.5 on
AMD64.Upgraded z3c.form 1.8.0 to 1.8.2: fixes error on Python 2.5.3.4.0c5 (2008-07-31)Upgraded setuptools to 0.6c8.Upgraded zope.app.security to 3.5.2. This is a major version bump, but the
new feature in 3.5 should not interfere with existing code and 3.5.2 fixes a
deprecation warning between Python 2.4 and 2.5.3.4.0c4 (2008-07-30)no changes3.4.0c3 (2008-07-30)Upgraded z3c.coverage to 1.1.2Upgraded zope.app.applicationcontrol to 3.4.3Upgraded zope.app.cache to 3.4.1Upgraded zope.app.pagetemplate to 3.4.1Upgraded zope.app.pythonpage to 3.4.1Upgraded zope.app.renderer to 3.4.3Upgraded zope.app.wsgi to 3.4.1Upgraded zope.traversing to 3.4.13.4.0c2 (2008-07-23)Upgraded ClientForm to 0.2.9Upgraded zope.app.debug to 3.4.1Upgraded zope.app.testing to 3.4.2Upgraded zope.app.twisted to 3.4.1Upgraded zope.server to 3.4.23.4.0c1 (2008-01-31)Added a KGS sectionUpgraded ZConfig to 2.5.1Upgraded ZODB3 to 3.8.0c1 and 3.8.0Upgraded pytz to 2007kUpgraded z3c.coverage to 1.1.1 (major version change)Upgraded z3c.form to 1.8.0 (major version change)Upgraded z3c.formui to 1.4.1 (major version change)Upgraded z3c.layer to 0.2.3Upgraded z3c.pagelet to 1.0.2Upgraded z3c.rml to 0.7.3 and removed version 0.7.1Upgraded z3c.traverser to 0.2.1Upgraded zc.buildout to 1.0.0Upgraded zc.resourcelibrary to 0.8.2Upgraded zc.zope3recipes to 0.6.1Upgraded zope.app.apidoc to 3.4.3Upgraded zope.app.container to 3.5.3Upgraded zope.app.file to 3.4.2Upgraded zope.app.locales to 3.4.1. Removed 3.4.0Upgraded zope.app.onlinehelp to 3.4.1Upgraded zope.app.publication to 3.4.3Upgraded zope.app.securitypolicy to 3.4.6Upgraded zope.interface to 3.4.1Upgraded zope.minmax to 1.1.0 (major version change)Upgraded zope.publisher to 3.4.2Upgraded zope.tal to 3.4.1Upgraded zope.viewlet to 3.4.2No history was recorded before version 3.4.0c1