buildout: fostering repeatability

28
open source nowhere to go but sixfeetup.com/immerse Buildout: Fostering Repeatability Clayton Parker Plone Symposium East 2009

Upload: clayton-parker

Post on 12-Jun-2015

1.757 views

Category:

Technology


0 download

DESCRIPTION

This is a 'talk' version of my Plone Conference tutorial with some updated slides.

TRANSCRIPT

Page 1: Buildout: Fostering Repeatability

open sourcenowhere to go but

sixfeetup.com/immerse

Buildout: FosteringRepeatability

Clayton ParkerPlone Symposium East 2009

Page 2: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Who am I?

• Lead Developer at Six Feet Up, Inc.

• claytron on IRC

Page 3: Buildout: Fostering Repeatability

sixfeetup.com/immerse

What’s in store?• What is buildout?

• How to get one

• Syntax

• Pinning

• Recipes

• Command line usage

Page 4: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Why buildout?

Page 5: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Eliminate Confusion

Page 6: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Roll Your Own

• Installer

• ZopeSkel

Page 7: Buildout: Fostering Repeatability

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

Page 8: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Lingo

Page 9: Buildout: Fostering Repeatability

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

Page 10: Buildout: Fostering Repeatability

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

Page 11: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Reserved Characters

: $ % { }

Page 12: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Pinning

Page 13: Buildout: Fostering Repeatability

sixfeetup.com/immerse

[buildout]...extends = http://dist.plone.org/release/3.2.2/versions.cfgversions = versions

Page 14: Buildout: Fostering Repeatability

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

Page 15: Buildout: Fostering Repeatability

sixfeetup.com/immerse

[buildout]...extends = http://dist.plone.org/release/3.2.2/versions.cfgversions = versions

[versions]plone.recipe.zope2install = 3.0

Page 16: Buildout: Fostering Repeatability

sixfeetup.com/immerse

[buildout]...extends = http://dist.plone.org/release/3.2.2/versions.cfg versions.cfgversions = versions

mybuildout | |-buildout.cfg |-versions.cfg

Page 17: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Recipes

Page 18: Buildout: Fostering Repeatability

sixfeetup.com/immerse

[plonesite]recipe = collective.recipe.plonesiteinstance = instancezeoserver = zeoserversite-id = Ploneadmin-user = adminproducts = profiles-initial = my.package:initialprofiles = my.package:default

Page 19: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Command Line

Page 20: Buildout: Fostering Repeatability

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

Page 21: Buildout: Fostering Repeatability

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

Page 22: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Update your buildout

$ bin/buildout -v

$ bin/buildout -Nvvv

$ bin/buildout -No

$ bin/buildout -t 10

Page 23: Buildout: Fostering Repeatability

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

Page 24: Buildout: Fostering Repeatability

sixfeetup.com/immerse

Commands

$ bin/buildout install

$ bin/buildout -Nv install zope2 instance

$ bin/buildout -nv install instance

Page 25: Buildout: Fostering Repeatability

sixfeetup.com/immerse

What did we learn?• What is buildout?

• How to get one

• Syntax

• Pinning

• Recipes

• Command line usage

Page 27: Buildout: Fostering Repeatability

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

Page 28: Buildout: Fostering Repeatability

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