Metadata-Version: 1.1
Name: zope.release
Version: 3.5.0.dev0
Summary: Zope Release and Known-Good-Set (KGS) Support
Home-page: http://pypi.python.org/pypi/zope.release
Author: Zope Corporation and Contributors
Author-email: zope-dev@zope.org
License: ZPL 2.1
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.
        
           (a) 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
        
           (b) Bootstrap the checkout::
        
                 $ python ./bootstrap.py
        
           (c) Run buildout to create the scripts::
        
                 $ ./bin/buildout
        
           (d) 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.
        
           (a) Enter the test directory and create a buildout:
        
                 $ cd test
                 $ python ../bootstrap.py
                 $ ./bin/buildout
        
           (b) 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:
        
           (a) Change the version number of the package of interest in the "versions"
               section.
        
           Alternative:
        
           (a) Check out the new distribution from SVN.
        
           (b) 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.
        
           (a) Find the package that you are interested in and add the new of the
               package in the `versions` attribute of the package's section.
        
           (b) 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.5.0 (unreleased)
        ------------------
        
        - Upgraded all packages to latest versions.
        
        - Added new ZODB 3.9 dependencies:
          * transaction
          * zc.lockfile
        
        - Added other new packages:
          * zope.authentication
          * zope.broken
          * zope.browser
          * zope.container
          * zope.copy
          * zope.site
          * zope.keyreference
          * zope.intid
          * zope.catalog
          * zope.password
          * zope.principalannotation
          * zope.principalregistry
          * zope.app.localpermission
          * z3c.layer.minimal
          * z3c.layer.pagelet
          * z3c.layer.ready2go
          * z3c.layer.trusted
          * z3c.menu.simple
          * z3c.menu.ready2go
          * z3c.schema
        
        - Removed zope.app.keyreference from KGS, as it was renamed
          to zope.keyreference and zope.app.keyreference should not
          be used anymore.
        
        - Removed z3c.layer as it was splitted (see added packages).
        
        - Removed z3c.menu as it also was splitted (see added packages).
        
        - Removed z3c.skin.pagelet as it uses deprecated z3c.menu and z3c.layer
          packages. You can use z3c.layer.pagelet and z3c.layer.ready2go instead.
        
        - Removed z3c.viewlet package, as its functionality was included in
          zope.viewlet ages ago.
        
        - Remove deprecated packages, zope.thread and zope.app.annotation,
          zope.app.pluggableauth.
        
        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
        
        
Keywords: zope3 setuptools egg kgs release
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope3
