跳转到主要内容

Zope发布和已知良好集合(KGS)支持

项目描述

Zope 3受控包索引

该软件包已开发以支持维护一组稳定的Zope项目发行版。它管理受控包配置文件,并支持生成由开发者使用的构建out配置文件。

此软件包的另一个用途是将其用于对新发行版与索引进行测试。以下是测试新包与稳定集合的流程

  1. 安装此软件包的正确版本。

    1. 下载您感兴趣的稳定集合管理的此软件包版本。对于Zope 3.4版本,存在一个3.4分支

      $ svn co svn://svn.zope.org/repos/main/zope.release/branches/3.4 zope3.4
      $ cd zope3.4
    2. 引导检出

      $ python ./bootstrap.py
    3. 运行buildout以创建脚本

      $ ./bin/buildout
    4. 运行buildout.cfg生成脚本以构建用于测试的配置文件

      $ ./bin/generate-buildout

  2. 从生成的配置文件,您现在可以构建一个测试环境。

    1. 进入测试目录并创建一个buildout

      $ cd test $ python ../bootstrap.py $ ./bin/buildout

    2. 运行所有测试以验证所有测试最初都通过

      $ ./bin/test -vpc1

  3. 修改buildout.cfg以查找要测试的新发行版

    1. 更改“版本”部分中感兴趣软件包的版本号。

    替代方案

    1. 从SVN检出新发行版。

    2. buildout.cfg 文件的“buildout”部分添加一行“develop path/to/my/package”。

  4. 运行测试,确保所有测试都通过。

  5. 修改 controlled-packages.cfg 以引用新版本。

    1. 找到您感兴趣的包,并在包部分的 versions 属性中添加包的新版本。

    2. [KGS] 部分,增加 version 属性中的版本号。

  6. 上传新的 KGS 发布版

    $ cd ..
    $ ./bin/upload

    一旦文件上传,一个每分钟运行一次的 crontab 任务将检测 controlled-pages.cfg 中的更改,并将生成新的受控包页面。

  7. 更新 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版本之前没有记录历史

项目详情


支持者