Upload
clayton-parker
View
1.767
Download
0
Tags:
Embed Size (px)
DESCRIPTION
This is a 'talk' version of my Plone Conference tutorial with some updated slides.
Citation preview
open sourcenowhere to go but
sixfeetup.com/immerse
Buildout: FosteringRepeatability
Clayton ParkerPlone Symposium East 2009
sixfeetup.com/immerse
Who am I?
• Lead Developer at Six Feet Up, Inc.
• claytron on IRC
sixfeetup.com/immerse
What’s in store?• What is buildout?
• How to get one
• Syntax
• Pinning
• Recipes
• Command line usage
sixfeetup.com/immerse
Why buildout?
sixfeetup.com/immerse
Eliminate Confusion
sixfeetup.com/immerse
Roll Your Own
• Installer
• ZopeSkel
sixfeetup.com/immerse
ZopeSkel
$ easy_install ZopeSkel$ paster create --list-templates...plone3_buildout: A buildout for Plone 3 projects
$ paster create -t plone3_buildout mybuildout
sixfeetup.com/immerse
Lingo
sixfeetup.com/immerse
Syntax[buildout]parts = zope2 instance
# copied from dist.plone.org/releaseextends = plone-versions.cfgversions = versions
[zope2]recipe = plone.recipe.zope2installurl = ${versions:zope2-url}fake-zope-eggs = Trueadditional-fake-eggs = ZODB3 ZConfig
[instance]recipe = plone.recipe.zope2instancezope2-location = ${zope2:location}user = admin:admineggs = Plone
sixfeetup.com/immerse
Advanced Syntax
${part:option}
${zope2:location} ${buildout:directory}option = ${buildout:directory}/somefolder
Variable Substitution
options = foo bar
options += bazoptions -= foo
Option Addition and Removal
sixfeetup.com/immerse
Reserved Characters
: $ % { }
sixfeetup.com/immerse
Pinning
sixfeetup.com/immerse
[buildout]...extends = http://dist.plone.org/release/3.2.2/versions.cfgversions = versions
sixfeetup.com/immerse
[versions]# Buildout infrastructureplone.recipe.zope2install = 2.6plone.recipe.zope2instance = 2.7zc.buildout = 1.1.1zc.recipe.egg = 1.1.0zope2-url = http://www.zope.org/Products/Zope/2.10.7/Zope-2.10.7-final.tgz
# Plone releasePlone = 3.2.2Products.ATContentTypes = 1.2.7Products.ATReferenceBrowserWidget = 2.0.3plone.app.viewletmanager = 1.2.1plone.app.vocabularies = 1.0.6plone.app.workflow = 1.1.5plone.browserlayer = 1.0.0plone.contentrules = 1.1.0
sixfeetup.com/immerse
[buildout]...extends = http://dist.plone.org/release/3.2.2/versions.cfgversions = versions
[versions]plone.recipe.zope2install = 3.0
sixfeetup.com/immerse
[buildout]...extends = http://dist.plone.org/release/3.2.2/versions.cfg versions.cfgversions = versions
mybuildout | |-buildout.cfg |-versions.cfg
sixfeetup.com/immerse
Recipes
sixfeetup.com/immerse
[plonesite]recipe = collective.recipe.plonesiteinstance = instancezeoserver = zeoserversite-id = Ploneadmin-user = adminproducts = profiles-initial = my.package:initialprofiles = my.package:default
sixfeetup.com/immerse
Command Line
sixfeetup.com/immerse
Baby Steps$ cd path/to/mybuildout
$ python2.4 bootstrap.pyCreating directory 'mybuildout/bin'.Creating directory 'mybuildout/parts'.Creating directory 'mybuildout/develop-eggs'.Generated script 'mybuildout/bin/buildout'.
$ bin/buildout
$ bin/instance start
sixfeetup.com/immerse
Options• -v and -q
• increase and decrease verbosity
• -n and -N
• Newest and non-newest modes
• -O and -o
• online and offline mode
• -t
• socket timeout
sixfeetup.com/immerse
Update your buildout
$ bin/buildout -v
$ bin/buildout -Nvvv
$ bin/buildout -No
$ bin/buildout -t 10
sixfeetup.com/immerse
Assignments
$ bin/buildout instance:debug-mode=on
$ bin/buildout buildout:log-level=70
$ bin/buildout -N instance:debug-mode=on -v
$ bin/buildout -Nv plonesite:enabled=false
$ bin/buildout plonesite:site-replace=true
sixfeetup.com/immerse
Commands
$ bin/buildout install
$ bin/buildout -Nv install zope2 instance
$ bin/buildout -nv install instance
sixfeetup.com/immerse
What did we learn?• What is buildout?
• How to get one
• Syntax
• Pinning
• Recipes
• Command line usage
sixfeetup.com/immerse
Links
• http://buildout.org
• http://pypi.python.org/pypi/zc.buildout
• https://svn.sixfeetup.com/svn/public/buildout/debug.cfg
• http://www.sixfeetup.com/swag/buildout-quick-reference-card
• http://plone.org/documentation/tutorial/buildout
• http://pypi.python.org
sixfeetup.com/immerseRegister by June 30th
and save $255!
1 non-profit project • 10 workshops • 14 mentors • 3 days
Learn Plone by building a website from A to Z
sixfeetup.com/immerse
Photo Credits• http://flickr.com/photos/monsieurlam/2645956083/
• http://flickr.com/photos/_boris/2796908072/
• http://flickr.com/photos/b-tal/163450213/
• http://flickr.com/photos/bullish1974/2648544508/
• http://flickr.com/photos/haydnseek/87432002/
• http://flickr.com/photos/disowned/1158260369/
• http://flickr.com/photos/7603557@N08/2662531345/
• http://flickr.com/photos/julishannon/2151986631/
• http://flickr.com/photos/julishannon/2152778524/
• http://flickr.com/photos/lollyknit/1155225799/
• http://flickr.com/photos/binary_koala/86227485/
• http://flickr.com/photos/marcoveringa/2951042391