Over two years ago I wrote a blog entry called "Hello, Plone!". I've just updated it in order to:
- Change the wording
- Update the links
- Add some comments
As change in technology is constant, you can expect a few details to differ between then and now. Though I generally don't like the term "best practice" I do like to write about "how I do it now" vs "how I did it then".
Since "Hello, Plone!" was published Buildout 2.0.0 was released and Buildout has given up on attempting to provide module isolation in the same way Virtualenv that does. Why? Virtualenv does it better. So if you want to isolate your development from a larger Python installation, use Virtualenv. I routinely use both Buildout and Virtualenv.
Ever since I wrote Plone 3.3 Site Administration I've been maintaining a collection of buildouts. Most recently, I've moved them to a project called Plock. You can also find a bunch of archived buildouts here: https://github.com/buildouts.
For folks new to Plone and Python development, it's often helpful to use a code generator to get started developing. The original hello_plone included some ZopeSkel instructions. In this round, I've opted to include manual instructions instead e.g.:
$ mkdir -p my.app/my/app $ touch my.app/my/app/__init__.py $ touch my.app/my/__init__.py $ touch my.app/my/app/configure.zcml
Why? Generally speaking, I now prefer to educate folks about Python packaging more so than code generation.
Check out the new old post here: http://blog.aclark.net/2011/08/20/hello-plone/.