Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install z3c.builder.core

How to install z3c.builder.core

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install z3c.builder.core
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
0.1.0 Available View build log
Windows (64-bit)
0.1.0 Available View build log
Mac OS X (10.5+)
0.1.0 Available View build log
Linux (32-bit)
0.1.0 Available View build log
Linux (64-bit)
0.1.0 Available View build log
 
License
ZPL 2.1
Lastest release
version 0.1.0 on Jan 5th, 2011

The Zope 3 Community's Project Builder

z3c.builder is a tool that helps you jump start development of a Zope 3 application by generating all the boiler plate code and configuration for you.

Goals
  • Easy to use
  • Easy to extend
  • More or less complete
Brainstorming

The easiest thing to tackle is just generating all the files that are needed without necessarily any customizable contents. A minimal eggs and buildout based project would have a directory structure like this:

System Message: WARNING/2 (<string>, line 24)

Literal block expected; none found.

package-name/ bootstrap.py buildout.cfg setup.py README.txt CHANGES.txt src/ namespace-package/ __init__.py package/ __init__.py

Each section of this directory structure can be further configured ad infinitum. The tricky part is deciding when enough is enough. Let's consider each of these sections and what they offer.

bootstrap.py

This is brain dead simple. There is a standard file that everyone uses and we just need to copy it in. I don't think there is any potential customization points.

buildout.cfg

There are pretty much an infinite number of generic customizations you can make to a buildout.cfg file. Here are some of the ones we might want to support out of the box:

  • Creation of multiple buildout.cfg files, for different uses

System Message: WARNING/2 (<string>, line 56)

Bullet list ends without a blank line; unexpected unindent.

(developers, production, minimal?)

  • kgs hookup, with support for using a remote extends buildout

System Message: WARNING/2 (<string>, line 59)

Bullet list ends without a blank line; unexpected unindent.

option, or downloading a versions.cfg file upon project creation.

  • Some typically used and useful parts:
  • tests
  • coverage
  • python interpreter
  • ctags
  • documentation generators

(note that some of these parts require additional files to be added to the src tree in order to make sense)

  • Zope Server setup.

System Message: WARNING/2 (<string>, line 72)

Bullet list ends without a blank line; unexpected unindent.

This bleeds into all the zope 3 configuration that we might want to do and also paster setup. This would include basically anything you can configure in zope.conf files.

setup.py

This is relatively straight forward. There are the obvious keyword arguments that are passed to the setup() command that we'll want to configure. There are however some slightly more interesting peices:

  • long_description: Since this is what becomes the python page,

System Message: WARNING/2 (<string>, line 84)

Bullet list ends without a blank line; unexpected unindent.

we'll want to hook up the boiler plate code for using a combination of README.txt, CHANGES.txt and others to generate the full long description. This shouldn't be that hard.

  • classifiers: It's always a pain in the ass to remember what all

System Message: WARNING/2 (<string>, line 89)

Bullet list ends without a blank line; unexpected unindent.

the different classifiers can be and how they should be formatted.

  • extras_requires: we may want to configure what extras_requires

System Message: WARNING/2 (<string>, line 93)

Bullet list ends without a blank line; unexpected unindent.

sections there are. Typically we would have a test and an app section. There might also be a docs section and others.

  • entry_points: this is where it gets a bit trickier. Paster has

System Message: WARNING/2 (<string>, line 97)

Bullet list ends without a blank line; unexpected unindent.

it's own entry point boiler plate code that you need. We may also want to configure any number of additonal command line script entry points.

README.txt

Just a simple file dump with maybe some configurable initial content.

CHANGES.txt

Another simple file dump with an example of the change log format that we've standardized on.

Other Python Files

The rest of the files are just for mkaing proper python modules and should be brain dead simple.

Conclusion

I think starting by making a project builder for simple egg/buildout based projects is a good starting point. It's an atainable and useful goal which will give us the experience we need to tackle the more complex task of zope boiler plate.

CHANGES

Version 0.1.0 (2009-03-27)
  • Initial Release

Subscribe to package updates

Last updated Jan 5th, 2011

Download Stats

Last month:1

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.