Beginning development with Plone 4 & Dexterity

Over the past few days, I’ve been tinkering with the latest alphas of Plone 4, particularly with an eye to trying out Dexterity on the latest version.

I started out, as many people will, by downloading the unified installer which will install Python 2.6, Zope 2.12 and the Plone 4.0 alpha for you. After a few teething problems with multiple versions of Python on my Hardy host, I had my Plone install up and running.

First impressions among myself and my colleagues here at Isotoma were that firstly, it was a heck of a lot faster than its predecessor. In fact, John Stahl recently blogged that Plone 4 is potentially three times faster than Drupal, Joomla and Wordpress. The other main, marked difference was the default theme, which is a lot slicker, though in my own opinion with its blocks of bright colours and rounded corners, a little too overtly “Web 2.0” (insert air-quotes here).

My next stop was Martin Aspeli’s Dexterity developer manual which whilst up-to-date for the current stable release of Plone, required some tweaking to get going with Plone 4.

The unified installer, by default, makes use of several config files for buildout, which keeps a lot of the core settings in separate files (base.cfg & versions.cfg). I hear that roadrunner is almost ready for Plone 4, but it’ll be a little while before we’re getting it without checking out the source so that had to be chopped. The extends entry for Dexterity also required updating to the latest alpha.

Otherwise, things went very straightforwardly. My buildout.cfg for use with the unified installer can be found below the fold.

[buildout]
extends-cache = extends
extends =
    base.cfg
    versions.cfg

http://good-py.appspot.com/release/dexterity/2.0-next

http-address = 8080

eggs =
    Plone
    Products.PDBDebugMode
    Products.LinguaPlone
    plone.reload

zcml =
    plone.reload

develop =
    src/example.project

debug-mode = off

backups-dir=${buildout:directory}/var

user=admin:password

parts =
    productdistros
    instance
    zopepy
    zopeskel
    backup
    unifiedinstaller
    chown
    omelette
    test

extensions =
    mr.developer
    buildout.dumppickedversions

[versions]
Cheetah = 2.2.1
Paste = 1.7.2
PasteScript = 1.7.3
ZopeSkel = 2.15
collective.recipe.backup = 1.3
plone.recipe.command = 1.0
plone.recipe.distros = 1.5
plone.recipe.unifiedinstaller = 4.0a1
PasteDeploy = 1.3.3

[omelette]
recipe = collective.recipe.omelette
eggs = ${instance:eggs}
packages = ./

[test]
recipe = zc.recipe.testrunner
eggs = example.project
extra-paths =
defaults = ['--exit-with-status', '--auto-color', '--auto-progress']

2 Responses to “Beginning development with Plone 4 & Dexterity”


  • Any reason why you put the goodpy configuration before the versions.cfg? I have found that placing goodpy last tends to make more sense as it tends to override the “default” versions settings.

  • Ahh you spotted my deliberate mistake! Kidding aside though, I moved that up in the list without thinking about it: Wordpress formatted it weirdly otherwise. I’ve corrected it now. Thanks!

Comments are currently closed.