For starting a new Plone site from scratch, most in the Plone community are familiar with using Templer/ZopeSkel. Here at Six Feet Up, we have our own customized version called SixieSkel. SixieSkel makes it easy to get started on new projects, because the customized templates are set up to already use our processes.
Many projects we build tend to have three custom packages: project.policy, project.content (using ZopeSkel's archetype), and project.theme (zopeskel.diazotheme). Until recently, we would set up each one in its own repository, and add them to the buildout with mr.developer.
We have implemented some changes to our setup that will make these packages part of the buildout, all in the same repo, called a unified buildout. A major advantage for this is the ability to create atomic commits. It also makes our release process easier and faster since only the buildout needs to be tagged.
This change to a unified buildout made the initial project creation a bit difficult, as the packages still needed to be created separately, then modified to work with the buildout. This is what led me to update SixieSkel to automatically create a unified buildout for us.
When creating a buildout, SixieSkel will now ask four new questions:
- Is this a unified buildout?
- Add a content package?
- Add a policy package?
- Add a theme package?
So if you answer yes to all these questions, a setup.py is added at the root of the buildout, and each package is added into a folder named for the project (one of the first SixieSkel questions). Config files are also set up to expect the added packages so that once you run buildout, you can start up the site and have everything installed and ready to go, without touching any of the files yourself.
You can view the source code on Github, or setup and use SixieSkel locally, it is available at http://dist.sixfeetup.com/public:
$ easy_install -f http://dist.sixfeetup.com/public -U sixieskel
$ templer sfu_buildout [project_name]