Eggification of Zope Packages

Title:Eggification of zope.* packages
Version: 5
Last-Modified:28-March-2007
Author: Baiju M <baiju.m.mail at gmail.com>
Status: IsImplementedProposal
Created:24-October-2006

Problem

Many zope.* packages are already eggified before this proposal. There are some packages remaining. This proposal is to track eggification of packages under zope and zope.app namespace which are distributed with Zope 3.

This proposal also track zc.buildout support for zope.* packages.

Proposal

The packages to be eggified are given below with status information. All packages will be having a unique version, that is 3.4 when released, and 3.4dev during development. Already eggified packages can be used as reference for further eggification.

Current status of packages

The package dependencies have changed. The zope.app package is deprecated, all packages that are not listed here, are not checked if they use the deprecated zope.app package.

Note that we also have to eggify deprecated packages, which have to be there for the 3.4 release, so that 3.4 packages are backward compatible.

E:Eggified
B:Buildout
D:Source distribution on http://download.zope.org/distribution

Packages under zope namespace

Package Status Notes Unnecessary or Wrong Dependencies
zope.annotation E,B,D   ok
zope.cachedescriptors E,B,D   ZODB3
zope.component E,B,D   ok
zope.configuration E,B,D   ok
zope.contentprovider E,B,D   ok
zope.contenttype E,B,D   ok
zope.copypastemove E,B,D   zope.app.container, zope.app.principalannotation, zope.app.testing, zope.app.component
zope.datetime E,B,D   ok
zope.decorator E,B,D   ok
zope.deferredimport E,B,D   ok
zope.deprecation E,B,D   ok
zope.documenttemplate E,B,D   ok
zope.dottedname E,B,D   ok
zope.dublincore E,B,D   ok
zope.error E,B,D   zope.app.appsetup, zope.app.container
zope.event E,B,D   ok
zope.exceptions E,B,D   ok
zope.filerepresentation E,B,D   zope.app.container
zope.formlib E,B,D   zope.app.container, zope.app.form, zope.app.pagetemplate, zope.app.zcmlfiles
zope.hookable E,B,D   ok
zope.html E,B,D   ok
zope.i18n E,B,D   ok
zope.i18nmessageid E,B,D   ok
zope.index E,B,D   ok
zope.interface E,B,D   ok
zope.lifecycleevent E,B,D   ok
zope.location E,B,D   ok
zope.minmax E,B,D   ok
zope.modulealias E,B,D   ok
zope.pagetemplate E,B,D   ok
zope.proxy E,B,D   ok
zope.publisher E,B,D   ok
zope.rdb E,B,D   zope.app.container
zope.schema E,B,D   ok
zope.security E,B,D   ok
zope.sendmail E,B,D   ZODB3, zope.app.component
zope.sequencesort E,B,D   ok
zope.server E,B,D   ok
zope.size E,B,D   ok
zope.structuredtext E,B,D   ok
zope.tal E,B,D   ok
zope.tales E,B,D   ok
zope.testbrowser E,B,D   ok
zope.testing E,B,D   ok
zope.testrecorder E,B,D   zope.app.publisher
zope.thread E,B,D   ok
zope.traversing E,B,D ct@gocept.com zope.app.applicationcontrol
zope.viewlet E,B,D rj@gocept.com zope.app.pagetemplate, zope.app.publisher
zope.xmlpickle E,B,D   ok
zope.app N/A No egg for this package it is a namespace  
zope.app.apidoc E,B,D    
zope.app.applicationcontrol E,B,D    
zope.app.appsetup E,B,D    
zope.app.authentication E,B,D    
zope.app.basicskin E,B,D    
zope.app.boston E,B,D    
zope.app.broken E,B,D    
zope.app.cache E,B,D    
zope.app.catalog E,B,D    
zope.app.component E,B,D    
zope.app.container E,B,D    
zope.app.content E,B,D    
zope.app.css E,D    
zope.app.dav E,B,D    
zope.app.debug E,B,D    
zope.app.dependable E,B,D    
zope.app.dtmlpage E,B,D    
zope.app.error E,B,D    
zope.app.exception E,B,D    
zope.app.externaleditor E,B,D    
zope.app.file E,B,D    
zope.app.folder E,B,D    
zope.app.form E,B,D    
zope.app.ftp E,B,D    
zope.app.generations E,B,D    
zope.app.http E,B,D    
zope.app.i18n E,B,D    
zope.app.i18nfile E,B,D    
zope.app.interface E,B,D    
zope.app.interpreter E,B,D    
zope.app.intid E,B,D    
zope.app.keyreference E,B,D    
zope.app.layers E,B,D    
zope.app.locales E,B,D    
zope.app.module E,B,D    
zope.app.onlinehelp E,B,D    
zope.app.pagetemplate E,B,D    
zope.app.pluggableauth E,B,D    
zope.app.preference E,B,D    
zope.app.preview E,D    
zope.app.principalannotation E,B,D    
zope.app.publication E,B,D    
zope.app.publisher E,B,D    
zope.app.renderer E,B,D    
zope.app.rotterdam E,B,D    
zope.app.schema E,B,D    
zope.app.security E,B,D    
zope.app.securitypolicy E,B,D    
zope.app.server E,B,D    
zope.app.session E,B,D    
zope.app.skins E,B,D    
zope.app.testing E,B,D    
zope.app.tree E,B,D    
zope.app.undo E,B,D    
zope.app.wsgi E,B,D    
zope.app.zapi E,B,D    
zope.app.zcmlfiles E,B,D    
zope.app.zopeappgenerations E,B,D    
zope.app.zptpage E,B,D    

Implementation Details

Replace packagename with respective package names below.

  • Packages should be committed to svn://svn.zope.org/repos/main/zope.packagename/trunk

  • Also there should be these directories:

    - svn://svn.zope.org/repos/main/zope.packagename/branches
    - svn://svn.zope.org/repos/main/zope.packagename/tags
    
  • A typical top directory will have these files:

    bootstrap.py
    buildout.cfg
    README.txt
    setup.py
    setup.cfg
    src/
    
  • Under src, create a zope directory with an __init__.py with this content:

    # namespace package boilerplate
    try:
        __import__('pkg_resources').declare_namespace(__name__)
    except ImportError, e:
        from pkgutil import extend_path
        __path__ = extend_path(__path__, __name__)
    
  • Set svn:ignore property of top directory like this:

    bin
    build
    develop-eggs
    dist
    eggs
    lib
    parts
    .installed.cfg
    
  • Set svn:ignore property of src directory like this:

    zope.packagename.egg-info
    
  • Set svn:externals property in src/zope (or src/zope/app) to include a line like this:

    packagename svn://svn.zope.org/repos/main/Zope3/trunk/src/zope/packagename
    
  • If any other packages are required to compile the current package, create an include package under main directory, and set svn:externals property to the package required. Look at zope.security package for more info. This is needed to pick up the C headers from the other package; the finished egg will not include the code from such packages.

Risks

None identified.

Implementation status

All necessary packages are eggified and buildout support has been added.

Comments

... --seletz, Thu, 26 Oct 2006 12:11:28 -0700 reply

Please color-code the tables. Red/Green sort of color codes ;)



( 99 subscribers )