No, really, you can (just) use Buildout to install Plone.

This is a follow up to my Getting Excited about Plone as Eggs post, because I can’t keep updating that one forever.

Generally speaking, the recommended (and supported) way to install Plone is via the installers, e.g. the Unified Installer. Obviously, if you want things to Just Work™ you should be using the latest stable release, which is why I linked to the 3.3.3 unified installer (although there is no Windows installer for 3.3.3 yet, which is why it’s not released on plone.org).

That said, since both Plone and Zope 2 have been packaged as eggs  (Plone became an egg in version 3.2 and Zope 2 became an egg as of Zope 2.12 which is the version of Zope 2 that Plone 4 will use) it has become “mostly trivial” to write a buildout.cfg to install Plone with. That means that you don’t even need paster to do it. You can just fire up an editor and type:

[buildout]

parts =
  instance

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs =
  Plone

Amazing!

Of course there is the nasty bit about PIL, which I get around now-a-days by adding a very specific find-link, e.g.:

[buildout]

parts =
  instance

find-links = http://dist.plone.org/thirdparty/PILwoTk-1.1.6.4.tar.gz

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs =
  PILwoTk
  Plone

What you should have at this point is a working Plone, but not necessarily a repeatable buildout. The reason being we have not pinned any egg versions yet, so we are effectively asking for whatever the latest version of Plone is on PyPI. Fun for playing, not fun for production. Fortunately the nice Plone people have created a bunch of version pins for us, so we just need to use them:

[buildout]

extends =
    http://dist.plone.org/release/4.0a3/versions.cfg

versions = versions

parts =
  instance

find-links = http://dist.plone.org/thirdparty/PILwoTk-1.1.6.4.tar.gz

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs =
  PILwoTk
  Plone

If you are completely new to buildout and you are thinking to yourself right now “what in the world is this guy talking about?” then you will likely want to install buildout first so you can join in the fun. Fortunately, the nice Python people have made that easy with a package called Distribute.

Following their instructions, you can do this:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py

Then:

$ easy_install zc.buildout
$ mkdir plone
$ cd plone
$ buildout init

After which you will have a buildout.cfg file, and you can follow along with the above steps. Happy?

The best part about all of this is that (on a fast internet connection) it should only be a matter of minutes before you are able to do this:

$ bin/instance fg

and be staring at:

Of course, if you are running in the foreground (recommended for debugging) you should see something like this:

aclark@Alex-Clarks-MacBook-Pro:~/Developer/public-plone/ > bin/instance fg
/Users/aclark/Developer/public-plone/parts/instance/bin/runzope -X debug-mode=on
2010-01-07 12:07:56 INFO ZServer HTTP server started at Thu Jan  7 12:07:56 2010
 Hostname: 0.0.0.0
 Port: 8080
2010-01-07 12:08:14 INFO Zope Ready to handle requests

If you’d like to get a little less noisy and skip debug mode but still run in the foreground, you can use April 2008′s famous addition to plone.recipe.zope2instance:

aclark@Alex-Clarks-MacBook-Pro:~/Developer/public-plone/ > bin/instance console

Sweet, blissful, silent running Plone.

Happy Plone 4′ing all!

Yup, this blog is now powered by WordPress.

(Or, “How I learned to stop worrying and use the right tool for the job.”)

My first blog entry was well over two years ago. I’ve learned enough Plone since then to know that I hardly know anything! Toward the end of 2009, I begin to realize that I was doing way too much, and not getting anything done as a result. So I began offloading services wherever I could to free or low cost service providers; I can’t tell you how much happier I have been since then.

Interestingly, after waffling over the use of these services for years, when push came to shove I had no problem choosing the right tool for the job. It didn’t matter so much what selection I made. The fact that I offloaded the responsibility was the most important thing.

Which brings me back to the subject at hand. I love Plone. I think it is great software. I want to make it better. In order to do that I need to broaden my horizons and use the right tool for the job, and hopefully bring those experiences back to Plone!

Hence, introducing my new WordPress-powered blog about Plone. I’m still using Plone for aclark.net (of course). I just don’t want to “manage” the blog software anymore. I want it done for me so I can focus on other things. Since WordPress is so obviously the leading “best” weblog software, it was an easy decision to make.

(Of course, this blog was shipped using Python software.)

Lastly, I’ll say this. I want to be more prolific in 2010, and I’m hoping that using the right tool for the job will help me achieve that. It has worked wonders so far.

Toronto Plone Add-ons Sprint #1 Report

Last month, members of the Toronto Plone user’s group helped with Plone.org maintenance. Here is the sprint “report out” from Jordan Baker:

Toronto Plone Addons Sprint Report #1:

  • Attending: Robert Jackiewicz, Jordan Baker, John Southern, aclark
  • aclark helped out by answering some questions and provided a dump of PSC data from plone.org
  • Rob was working on getting his buildout working with nginx and documenting the process
  • John worked on gettting a task listing setup on coactivate: http://www.coactivate.org/projects/ploneorg-upgrade/tasks/tasklist/show/993
  • Jordan commited changes to allow for filtering by version, autosubmit on selection change and searching using the PSC view instead of the Plone search view.  aclark is working on cutting a release… hopefully we can get a preview soon..

Outstanding questions:

  • need some help with c.xdv or nginx so we can preview changes in the theme
  • Where should we put our issues in the future.  There was talk of eating dog food using a Poi instance on plone.org — can someone help me set that up (add hexsprite and gogojohn as admins)
  • Please help us by prioritizing the tasks in the task list on coactivate

Next Sprint:

Shooting for January 22.  Hopefully that will work for most people. Please help us spread the word to interested parties… more details to come.