Skip to main content

A utility to help jump start Zope 3 projects

Project description

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:

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 (developers, production, minimal?)

  • kgs hookup, with support for using a remote extends buildout 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. 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, 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 the different classifiers can be and how they should be formatted.

  • extras_requires: we may want to configure what extras_requires 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 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

z3c.builder.core-0.1.0.tar.gz (140.9 kB view details)

Uploaded Source

File details

Details for the file z3c.builder.core-0.1.0.tar.gz.

File metadata

File hashes

Hashes for z3c.builder.core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc272ef0194ec5ca00769bce0f637ec6fadee4eb29667337ea5d9f9e1325a9b4
MD5 1173c363f489d47f050fb104bf515b54
BLAKE2b-256 285c5a6467ba246fd1c93964808306b11a2f2fa191c5381a092079936c3bb785

See more details on using hashes here.

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