Distributing Diazo themes for Plone

by Laurence Rowe on May 29, 2011

It's been great to see so many new themes created over the past few weeks as people start using Diazo and plone.app.theming, and special thanks to Alex Clark for his work packaging up so many. In my view, the most exciting feature of plone.app.theming is the ability to distribute themes as simple zip files. Plone themers no longer need to understand the strange magic required to create python package distribution and once we ship with plone.app.theming, new users won't need to understand buildout to install new themes. (Note that there was a bug fixed in earlier versions of plone.app.theming that made the zip file upload form in the control panel unusable, it's fixed in 1.0b4.)

Of course there will be some themes that require supporting views or python code to work, but for the vast majority that don't, I'd like to encourage theme authors to distribute themes as zip files rather than as python packages. Uploading your theme as a simple zip file to Plone's Add-on Products section has several advantages:

  • Less code. No need for a setup.py or several levels of folders containing __init__.py files.
  • Previous versions of your theme will continue to be available after you update it.
  • New users will often use an existing example as the basis of their own work. By keeping these examples simple we increase the probability they'll be successful in creating their own theme.
  • In future we hope to create a theme gallery on plone.org and integrate it into the plone.app.theming control panel. This can only work for simple zipped themes, not python packages, so for inclusion make sure to upload them!

So with zipped themes now fully working, I don't see any reason to uploading simple themes as python packages to pypi. And please don't upload copied of your zipped theme into Plone's subversion repository, version control is intended for source code and it does not benefit from the plone.org cache server.

Filed under: ,
blog comments powered by Disqus