Skip to main content

Zope Release and Known-Good-Set (KGS) Support

Project description

Zope 3 Controlled Package Index

This 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:

  1. Install the correct version of this package.

    1. 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.4
    2. Bootstrap the checkout:

      $ python ./bootstrap.py
    3. Run buildout to create the scripts:

      $ ./bin/buildout
    4. Run the buildout.cfg generation script to build a configuration file that can be used for testing:

      $ ./bin/generate-buildout

  2. From the generated configuration file, you can now build a testing environment.

    1. Enter the test directory and create a buildout:

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

    2. Run all the tests to verify that all tests are initially passing:

      $ ./bin/test -vpc1

  3. Modify the buildout.cfg to look for your the new distribution to be tested:

    1. Change the version number of the package of interest in the “versions” section.

    Alternative:

    1. Check out the new distribution from SVN.

    2. Add a “develop path/to/my/package” line in the “buildout” section of buildout.cfg.

  4. Run the tests, making sure that they all pass.

  5. Modify controlled-packages.cfg to reference the new version.

    1. Find the package that you are interested in and add the new of the package in the versions attribute of the package’s section.

    2. In the [KGS] section, increase the version number in the version attribute.

  6. Upload the new KGS release:

    $ cd ..
    $ ./bin/upload

    Once the files are uploaded, a crontab-job, running every minute, will detect the changes in controlled-pages.cfg and will generate the new controlled package pages.

  7. 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 commit

Note: 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 Tools

This package provides some tools to manage Zope 3 releases. It extends the scripts provided by zope.kgs with 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 Files

Once 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 = True

Usually we only need to upload the controlled packages file, since site script of the zope.kgs package 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.cfg

Updating the Zope 3 Tree

Since 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 = do

Let’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 History

NOTE: The releases of this package are synced with the Zope 3 releases.

3.4.0 (2009-01-29)

  • Upgraded setuptools to 0.6c9

  • Upgraded ZODB3 to 3.8.1

  • Upgraded zc.resourcelibrary to 1.0.1

  • Upgraded zope.app.authentication to 3.4.4

3.4.0c7 (2008-09)

  • Upgraded zope.server to 3.4.3

  • Upgraded zope.app.server to 3.4.1 and 3.4.2

  • Upgraded zope.publisher to 3.4.5, 3.4.6

  • Upgraded zc.zope3recipes to 0.6.2

  • Upgraded zope.testing to 3.5.6

  • Upgraded z3c.form to 1.9.0

  • Upgraded z3c.formui to 1.4.1

  • Upgraded z3c.formdemo to 1.5.3

  • Upgraded z3c.formjs to 0.4.0

  • Upgraded z3c.formjsdemo to 0.3.1

  • Upgraded zdaemon to 2.0.2

  • Upgraded zope.app.locales to 3.4.2, 3.4.3, 3.4.4, 3.4.5

  • Upgraded z3c.traverser to 0.2.2, 0.2.3

  • Upgraded zope.annotation to 3.4.1

  • Upgraded zope.app.file to 3.4.3, 3.4.4

  • Upgraded zope.cachedescriptors to 3.4.1

  • Upgraded zope.securitypolicy to 3.4.1

  • Upgraded zc.buildout to 1.1.1

    • Fixed backwards incompatible change in handling of environment option.

    • Seems to have fixed sporadic test failures under high system load

3.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.4

  • Upgraded zope.app.container to 3.5.6

  • Upgraded zope.testing 3.5.1 to 3.5.4.

  • Upgraded zc.buildout 1.0.0 to 1.1.0.

    • New global buildout option, unzip

    • Recompiles 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 changes

3.4.0c3 (2008-07-30)

  • Upgraded z3c.coverage to 1.1.2

  • Upgraded zope.app.applicationcontrol to 3.4.3

  • Upgraded zope.app.cache to 3.4.1

  • Upgraded zope.app.pagetemplate to 3.4.1

  • Upgraded zope.app.pythonpage to 3.4.1

  • Upgraded zope.app.renderer to 3.4.3

  • Upgraded zope.app.wsgi to 3.4.1

  • Upgraded zope.traversing to 3.4.1

3.4.0c2 (2008-07-23)

  • Upgraded ClientForm to 0.2.9

  • Upgraded zope.app.debug to 3.4.1

  • Upgraded zope.app.testing to 3.4.2

  • Upgraded zope.app.twisted to 3.4.1

  • Upgraded zope.server to 3.4.2

3.4.0c1 (2008-01-31)

  • Added a KGS section

  • Upgraded ZConfig to 2.5.1

  • Upgraded ZODB3 to 3.8.0c1 and 3.8.0

  • Upgraded pytz to 2007k

  • Upgraded 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.3

  • Upgraded z3c.pagelet to 1.0.2

  • Upgraded z3c.rml to 0.7.3 and removed version 0.7.1

  • Upgraded z3c.traverser to 0.2.1

  • Upgraded zc.buildout to 1.0.0

  • Upgraded zc.resourcelibrary to 0.8.2

  • Upgraded zc.zope3recipes to 0.6.1

  • Upgraded zope.app.apidoc to 3.4.3

  • Upgraded zope.app.container to 3.5.3

  • Upgraded zope.app.file to 3.4.2

  • Upgraded zope.app.locales to 3.4.1. Removed 3.4.0

  • Upgraded zope.app.onlinehelp to 3.4.1

  • Upgraded zope.app.publication to 3.4.3

  • Upgraded zope.app.securitypolicy to 3.4.6

  • Upgraded zope.interface to 3.4.1

  • Upgraded zope.minmax to 1.1.0 (major version change)

  • Upgraded zope.publisher to 3.4.2

  • Upgraded zope.tal to 3.4.1

  • Upgraded zope.viewlet to 3.4.2

No history was recorded before version 3.4.0c1

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page