Zope发布和已知良好集合(KGS)支持
项目描述
Zope 3受控包索引
该软件包已开发以支持维护一组稳定的Zope项目发行版。它管理受控包配置文件,并支持生成由开发者使用的构建out配置文件。
此软件包的另一个用途是将其用于对新发行版与索引进行测试。以下是测试新包与稳定集合的流程
安装此软件包的正确版本。
下载您感兴趣的稳定集合管理的此软件包版本。对于Zope 3.4版本,存在一个3.4分支
$ svn co svn://svn.zope.org/repos/main/zope.release/branches/3.4 zope3.4 $ cd zope3.4
引导检出
$ python ./bootstrap.py
运行buildout以创建脚本
$ ./bin/buildout
运行buildout.cfg生成脚本以构建用于测试的配置文件
$ ./bin/generate-buildout
从生成的配置文件,您现在可以构建一个测试环境。
进入测试目录并创建一个buildout
$ cd test $ python ../bootstrap.py $ ./bin/buildout
运行所有测试以验证所有测试最初都通过
$ ./bin/test -vpc1
修改buildout.cfg以查找要测试的新发行版
更改“版本”部分中感兴趣软件包的版本号。
替代方案
从SVN检出新发行版。
在 buildout.cfg 文件的“buildout”部分添加一行“develop path/to/my/package”。
运行测试,确保所有测试都通过。
修改 controlled-packages.cfg 以引用新版本。
找到您感兴趣的包,并在包部分的 versions 属性中添加包的新版本。
在 [KGS] 部分,增加 version 属性中的版本号。
上传新的 KGS 发布版
$ cd .. $ ./bin/upload
一旦文件上传,一个每分钟运行一次的 crontab 任务将检测 controlled-pages.cfg 中的更改,并将生成新的受控包页面。
更新 Zope3 3.4 分支的 svn:externals
$ 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 commit
注意:我认为这个过程仍然有点长。我可能编写一个脚本来简化测试新版本包的过程,但让我们先看看这个过程是否可行。
Zope 发布工具
该软件包提供了一些管理 Zope 3 发布的工具。它通过添加 Zope 特定的脚本扩展了 zope.kgs 提供的脚本,例如更新 Zope 3 源树和将文件上传到下载位置。
以下是一个示例受控包配置文件
>>> 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')
上传文件
一旦生成的文件经过测试并准备好上传,您可以使用上传脚本来上传文件到 KGS。由于我们实际上不想上传文件,我们只需切换到 dry-run 模式。
>>> from zope.release import upload >>> upload.DRY_RUN = True
通常我们只需要上传受控包文件,因为 zope.kgs 软件包的站点脚本会为我们完成剩余的工作。
>>> 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.cfg
更新 Zope 3 树
由于我们仍然想创建一个 Zope 3 源树发布版,我们需要能够使用受控包文件的信息来更新其 externals。由于此脚本明显是 Zope3 特定的,我们需要一个新的受控包配置文件,其中包含实际的包。
>>> 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 ... ''')
我们还需要模拟命令执行,因为我们没有实际检查出的 Zope 3 树。
>>> 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 = do
现在让我们运行树更新
>>> 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 历史
注意:该软件包的发布与 Zope 3 发布同步。
3.4.0 (2009-01-29)
升级 setuptools 到 0.6c9
升级 ZODB3 到 3.8.1
升级 zc.resourcelibrary 到 1.0.1
升级 zope.app.authentication 到 3.4.4
3.4.0c7 (2008-09)
升级 zope.server 到 3.4.3
升级 zope.app.server 到 3.4.1 和 3.4.2
升级 zope.publisher 到 3.4.5、3.4.6
升级 zc.zope3recipes 到 0.6.2
升级 zope.testing 到 3.5.6
升级 z3c.form 到 1.9.0
升级 z3c.formui 到 1.4.1
升级 z3c.formdemo 到 1.5.3
升级 z3c.formjs 到 0.4.0
升级 z3c.formjsdemo 到 0.3.1
升级 zdaemon 到 2.0.2
升级 zope.app.locales 到 3.4.2、3.4.3、3.4.4、3.4.5
升级 z3c.traverser 到 0.2.2、0.2.3
升级 zope.annotation 到 3.4.1
升级 zope.app.file 到 3.4.3、3.4.4
升级 zope.cachedescriptors 到 3.4.1
升级 zope.securitypolicy 到 3.4.1
升级 zc.buildout 到 1.1.1
修复处理环境选项时的向后不兼容更改。
似乎在高系统负载下解决了测试失败的偶然问题
3.4.0c6 (2008-08-14)
升级 zope.publisher 到 3.4.3。
升级 zope.app.authentication 到 3.4.3。删除了之前的版本,因为它们与 zope.app.container >= 3.5.4 不兼容
升级 zope.app.container 到 3.5.6
将 zope.testing 3.5.1 升级到 3.5.4。
将 zc.buildout 1.0.0 升级到 1.1.0。
新增全局 buildout 选项,unzip
重新编译 pyc 文件以获得正确的路径。
将 zope.proxy 3.4.0 升级到 3.4.2:修复了在 AMD64 上使用 Python 2.5 的问题。
将 zope.security 3.4.0 升级到 3.4.1:修复了在 AMD64 上使用 Python 2.5 的问题。
将z3c.form 1.8.0升级到1.8.2:修复了Python 2.5上的错误。
3.4.0c5 (2008-07-31)
将setuptools升级到0.6c8。
将zope.app.security升级到3.5.2。这是一个主要版本升级,但3.5版本中的新功能不应干扰现有代码,3.5.2修复了Python 2.4和2.5之间的弃用警告。
3.4.0c4 (2008-07-30)
无更改
3.4.0c3 (2008-07-30)
将z3c.coverage升级到1.1.2
将zope.app.applicationcontrol升级到3.4.3
将zope.app.cache升级到3.4.1
将zope.app.pagetemplate升级到3.4.1
将zope.app.pythonpage升级到3.4.1
将zope.app.renderer升级到3.4.3
将zope.app.wsgi升级到3.4.1
将zope.traversing升级到3.4.1
3.4.0c2 (2008-07-23)
将ClientForm升级到0.2.9
将zope.app.debug升级到3.4.1
将zope.app.testing升级到3.4.2
将zope.app.twisted升级到3.4.1
将zope.server升级到3.4.2
3.4.0c1 (2008-01-31)
添加了KGS部分
将ZConfig升级到2.5.1
将ZODB3升级到3.8.0c1和3.8.0
将pytz升级到2007k
将z3c.coverage升级到1.1.1(主要版本变更)
将z3c.form升级到1.8.0(主要版本变更)
将z3c.formui升级到1.4.1(主要版本变更)
将z3c.layer升级到0.2.3
将z3c.pagelet升级到1.0.2
将z3c.rml升级到0.7.3并删除了版本0.7.1
将z3c.traverser升级到0.2.1
将zc.buildout升级到1.0.0
将zc.resourcelibrary升级到0.8.2
将zc.zope3recipes升级到0.6.1
将zope.app.apidoc升级到3.4.3
将zope.app.container升级到3.5.3
将zope.app.file升级到3.4.2
将zope.app.locales升级到3.4.1。已删除3.4.0
将zope.app.onlinehelp升级到3.4.1
将zope.app.publication升级到3.4.3
将zope.app.securitypolicy升级到3.4.6
将zope.interface升级到3.4.1
将zope.minmax升级到1.1.0(主要版本变更)
将zope.publisher升级到3.4.2
将zope.tal升级到3.4.1
将zope.viewlet升级到3.4.2
3.4.0c1版本之前没有记录历史