paab 0.1

Publisher's description

paab, acronym for Plone As A Blog, is a project to build a collection of Products to use Plone as a Weblog. The main goal of the project is to provide a simple plone installer that includes a set of products that modify the plone default behavior to be more blogish.Using a custom buildoutNote: If you are using Windows, if you do not have PIL installed, or you are not using Python 2.4 as your main system Python, please see the relevant sections below.You probably got here by running something like: $ paster create -t plone3_buildout Now, you need to run: $ python bootstrap.py This will install zc.buildout for you. To create an instance immediately, run: $ bin/buildout This will download Plone's eggs and products for you, as well as other dependencies, create a new Zope 2 installation (unless you specifiedan existing one when you ran "paster create"), and create a new Zope instanceconfigured with these products.You can start your Zope instance by running: $ bin/instance start or, to run in foreground mode: $ bin/instance fg To run unit tests, you can use: $ bin/instance test -s my.package Installing PILTo use Plone, you need PIL, the Python Imaging Library. If you don't alreadyhave this, download and install it from http://www.pythonware.com/products/pil.Using a different Python installationBuildout will use your system Python installation by default. However, Zope2.10 (and by extension, Plone) will only work with Python 2.4. You can verify which version of Python you have, by running: $ python -V If that is not a 2.4 version, you need to install Python 2.4 from http://python.org. If you wish to keep another version as your main systemPython, edit buildout.cfg and add an 'executable' option to the "[buildout]"section, pointing to a python interpreter binary: [buildout] ... executable = /path/to/python Working with buildout.cfgYou can change any option in buildout.cfg and re-run bin/buildout to reflectthe changes. This may delete things inside the 'parts' directory, but shouldkeep your Data.fs and source files intact. To save time, you can run buildout in "offline" (-o) and non-updating (-N) mode, which will prevent it from downloading things and checking for new versions online: $ bin/buildout -Nov Creating new eggsNew packages you are working on (but which are not yet released as eggs and uploaded to the Python Package Index, aka PYPI) should be placed in src. You can do: $ cd src/ $ paster create -t plone my.package Use "paster create --list-templates" to see all available templates. Answerthe questions and you will get a new egg. Then tell buildout about your eggby editing buildout.cfg and adding your source directory to 'develop': [buildout] ... develop = src/my.package You can list multiple packages here, separated by whitespace or indentednewlines.You probably also want the Zope instance to know about the package. Add its package name to the list of eggs in the "[instance]" section, or under themain "[buildout]" section: [instance] ... eggs = ${buildout:eggs} ${plone:eggs} my.package Leave the ${buildout:eggs} part in place - it tells the instance to use theeggs that buildout will have downloaded from the Python Package Indexpreviously.If you also require a ZCML slug for your package, buildout can create oneautomatically. Just add the package to the 'zcml' option: [instance] ... zcml = my.package When you are finished, re-run buildout. Offline, non-updating mode should suffice: $ bin/buildout -Nov Developing old-style productsIf you are developing old-style Zope 2 products (not eggs) then you can do so by placing the product code in the top-level 'products' directory. This isanalogous to the 'Products/' directory inside a normal Zope 2 instance and is scanned on start-up for new products.Depending on a new eggIf you want to use a new egg that is in the Python Package Index, all you need to do is to add it to the "eggs" option under the main "[buildout]" section: [buildout] ... eggs = my.package If it's listed somewhere else than the Python Package Index, you can add a link telling buildout where to find it in the 'find-links' option: [buildout] ... find-links = http://dist.plone.org http://download.zope.org/distribution/ http://effbot.org/downloads http://some.host.com/packages Using existing old-style productsIf you are using an old-style (non-egg) product, you can either add it as an automatically downloaded archive or put it in the top-level "products" folder. The former is probably better, because it means you can redistribute your buildout.cfg more easily: [productdistros] recipe = plone.recipe.distros urls = http://plone.org/products/someproduct/releases/1.3/someproduct-1.3.tar.gzIf someproduct-1.3.tar.gz extracts into several products inside a top-leveldirectory, e.g. SomeProduct-1.3/PartOne and SomeProduct-1.3/PartTwo, then add it as a "nested package": [productdistros] recipe = plone.recipe.distros urls = http://plone.org/products/someproduct/releases/1.3/someproduct-1.3.tar.gz nested-packages = someproduct-1.3.tar.gz Alternatively, if it extracts to a directory which contains the version number, add it as a "version suffix package": [productdistros] recipe = plone.recipe.distros urls = http://plone.org/products/someproduct/releases/1.3/someproduct-1.3.tar.gz version-suffix-packages = someproduct-1.3.tar.gz You can also track products by adding a new bundle checkout part. It doesn't strictly have to be an svn bundle at all, any svn location will do,and cvs is also supported: [buildout] ... parts = plone zope2 productdistros myproduct instance zopepyNote that "myproduct" comes before the "instance" part. You thenneed to add a new section to buildout.cfg: [myproduct] recipe = plone.recipe.bundlecheckout url = http://svn.plone.org/svn/collective/myproduct/trunk Finally, you need to tell Zope to find this new checkout and add it to itslist of directories that are scanned for products: [instance] ... products = ${buildout:directory}/products ${productdistros:location} ${plonebundle:location} ${myproduct:location} Without this last step, the "myproduct" part is simply managing an svn checkout and could potentially be used for something else instead.