Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Entwicklungsumgebung Aktualisierung und Versionierung

Aktualisierung und Versionierung

erstellt von Veit Schiele zuletzt verändert: 19.07.2010 15:03 © Veit Schiele 2007–2009

Aktualisierung

Damit Änderungen der buildout.cfg wirksam werden, müssen wir ./bin/buildout erneut aufrufen. Diese Aktualisierung kann häufig beschleunigt werden, indem buildout im non-updating-Modus aufgerufen wird, also:

$ ./bin/buildout -N

Eine Übersicht über alle für buildout verfügbaren Optionen erhalten Sie mit:

$ ./bin/buildout -h

Versionen festschreiben

Buildout verwendet üblicherweise immer die neueste Version eines Eggs. Sollen jedoch nur finale Versionen verwendet werden, kann im buildout-Abschnitt folgendes angegeben werden:

prefer-final = true

Buildout aktualisiert üblicherweise immer auf die neueste Version. Dies unterbleibt jedoch, wenn im buildout-Abschnitt folgendes angegeben wird:

newest = false

In den oben angegebenen Beispielen wurde gezeigt, wie sich die Versionen für Eggs, Recipes und Products fest vorgeben lassen.

Eine Liste der noch nicht festgeschriebenen Versionen erhalten wir mit:

$ ./bin/buildout -Nv | sed -ne 's/^Picked: //p' | sort | uniq

Für Plone 3.2.1 werden die für Plone 3.2.1 benötigten Versionen festgeschrieben indem in der buildout.cfg-Datei folgendes angegeben wurde:

[buildout]
…
extends = http://dist.plone.org/release/3.2.1/versions.cfg
versions = versions

In der versions.cfg-Datei werden dann im [versions]-Abschnitt die von Plone benötigten Eggs in definierten Versionen angegeben:

[versions]
# Buildout infrastructure
buildout.eggtractor = 0.6
plone.recipe.zope2install = 2.6
plone.recipe.zope2instance = 2.7
setuptools = 0.6c9
zc.buildout = 1.1.1
zc.recipe.egg = 1.1.0
zope2-url = http://www.zope.org/Products/Zope/2.10.6/Zope-2.10.6-final.tgz

# Plone release
Plone = 3.2.1
Products.ATContentTypes = 1.2.7
Products.ATReferenceBrowserWidget = 2.0.3

Falls weitere Eggs festgeschrieben werden sollen, kann nicht in der buildout.cfg-Datei ein weiterer versions-Abschnitt angegeben werden, es kann jedoch in extends eine eigene versions.cfg-Datei angegeben werden, die ebenfalls wieder einen [versions]-Abschnitt enthält. So kann z.B. die buildout.cfg-Datei folgendermaßen aussehen:

[buildout]
…
extends =
    versions.cfg
    http://dist.plone.org/release/3.2.1/versions.cfg
versions = versions

Und in der versions.cfg-Datei werden dann weitere Versionen festgeschrieben:

[versions]
elementtree = 1.2.7-20070827-preview
plone.recipe.distros = 1.3
plone.reload = 0.9
python-openid = 2.2.1

Plone 3.1

Sollen spezifische, in einem Rezept angegebene Versionen überschrieben werden, wird zunächst im buildout-Abschnitt mit der Option versions auf einen Abschnitt verwiesen, der die zu verwendenden Versionen enthält:

[buildout]
…
versions = release1

[release1]
plone.locking = 1.0.5

Anschließend muss das Egg noch im [plone]-Abschnitt angegeben werden, um die Festlegung der Version für dieses Produkt in plone.recipe.plone aufzuheben:

[plone]
recipe = plone.recipe.plone
eggs =
    plone.locking

Siehe auch: Repeatable buildouts: controlling eggs used

buildout.dumppickedversions

buildout.dumppickedversions ist eine buildout-extension, die alle Eggs, deren Versionen bisher nicht festgeschrieben wurden, in einer versions.cfg-Datei festschreibt.

Subversion

Auch Versionen von Produkten aus einem Subversion-Repository lassen sich festschreiben:

[buildout]
…
productcheckouts

[productcheckouts]
recipe = infrae.subversion
urls =
    https://svn.plone.org/svn/collective/eXtremeManagement/tags/1.5.2/ eXtremeManagement
    http://getpaid.googlecode.com/svn/trunk/products/PloneGetPaid@1132 PloneGetPaid

[instance]
…
products =
    …
    ${productcheckouts:location}

Darüberhinaus erlaubt infrae.subversion auch, ausgecheckte Verzeichnisse als development eggs in das Buildout-Pojekt einzubinden.

location
gibt das Zielverzeichnis an, sodass z.B. auch direkt in src heruntergeladen werden kann.
as_eggs
Mit dem Wert true werden die Eggs als development eggs installiert.

So kann die Buildout-Konfiguration z.B. so aussehen:

[buildout]
…
ourpackages
instance
…

[ourpackages]
recipe = infrae.subversion
urls =
    https://dev.veit-schiele.de/svn/vs/vs.policy/trunk vs.policy
    https://dev.veit-schiele.de/svn/vs/vs.theme/trunk vs.theme
location = src
as_eggs = true

[instance]
…
eggs =
    ${buildout:eggs}
    ${plone:eggs}
    ${ourpackages:eggs}
Artikelaktionen