Einige der wesentlichen Änderungen sind:
Buildout versucht nicht mehr eine vollständige Isolation vom System-Python zu bieten. Falls eine solche Isolation gewünscht wird, sollte virtualenv verwendet werden.
Buildout unterstützt nicht mehr verschiedene Python-Versionen in einem einzelnen Buildut-Projekt.
Das Format der Konfigurationsdatei hat sich geändert:
Relative Einrückungen von Werten bleiben erhalten sofern die erste Zeile leer bleibt, also z.B.:
[mysection] tree = /root branch
Die Syntax ist strenger definiert und bietet weniger syntaktische Möglichkeiten. Weitere Informationen hierzu erhalten Sie in Configuration file syntax.
Buildout verwendet nun als Standardwert final releases. Falls das Buildout- Projekt jedoch bereits mit einer nicht-finalen Release erstellt wurde, wird es nicht durch ein niedrigeres finales Release ersetzt.
Die buildout-versions -Erweiterung wurde integriert.
- show-picked-versions
ist der Wert auf true gesetzt, werden am Ende des Buildout-Durchlaufs alle nicht-festgeschriebenen Versionen ausgegeben, also z.B.:
$ ./bin/buildout … Versions had to be automatically picked. The following part definition lists the versions picked: [versions] Cheetah = 2.2.1 Pillow = 1.7.8 ZopeSkel = 2.21.2 collective.recipe.plonesite = 1.8.1 i18ndude = 3.2.2 zopeskel.dexterity = 1.4.1
- update-versions-file
wird als Wert ein Pfad zu einer Datei relativ zum Buildout-Verzeichnis angegeben, wird die Ausgabe aus show-picked-versions direkt in diese Datei geschrieben.
Buildout-Optionen können nun in der Kommandozeile in folgender Form eingegeben werden:
option_name=value
anstatt:
buildout:option_name=value
Der Standardwert für versions ist nun versions sodass nicht mehr länger
versions = versions
angegeben werden muss.
Der buildout init-Befehl erlaubt nun die Angabe der Anforderungen und Pfade um einen einen eigenen Interpreter zu erstellen, z.B.:
python bootstrap.py init BeautifulSoup
Die buildout:socket-timout-Option lässt sich nun nicht mehr nur in der Kommandozeile angeben sondern auch in der Konfigurationsdatei.
Upgrade
Um ältere Projekte auf Buildout 2.0 zu aktualisieren sind folgende Schritte nötig:
Aktualisieren Sie Ihre bootstrap.py-Datei:
$ cd vs_buildout $ rm bootstrap.py $ curl -O http://downloads.buildout.org/2/bootstrap.py
Falls Sie die Versionen in Ihrem Buildout festgeschrieben haben, sollten die Versionen für zc.buildout und zc.recipe.egg geändert werden:
[versions] … setuptools= 0.9.8 zc.buildout = 2.2.0
Falls Sie in Ihrem Buildout-Projekt buildout-versions oder buildout.dumppickedversions verwendet haben, sollten Sie diese entfernen da deren Funktionalität nun in Buildout selbst integriert wurde. Sie können in Buildout 2.0 folgendes angeben:
[buildout] … show-picked-versions = true update-versions-file = /path/to/versions.cfg
versions = versions kann ggf. aus der Buildout-Konfigurationsdatei entfernt werden, da dies nun der Standardwert ist.
Anmerkung: Falls Sie beim Aufruf der bootstrap.py-Datei folgende Fehlermeldung erhalten:
Traceback (most recent call last): File "bootstrap.py", line 108, in <module> pkg_resources.Requirement.parse('distribute')).location AttributeError: 'NoneType' object has no attribute 'location'
dann verwenden Sie noch eine alte bootstrap.py-Datei. Diese ist nicht kompatibel mit Buildout 2.x lädt die zugehörigen Dateien jedoch dennoch herunter. Sie können nun entweder die Buildout-Version festschreiben mit:
$ python bootstrap.py -v 1.7.1
oder Sie aktualisieren Ihre bootstrap.py-Datei:
$ rm bootstrap.py $ curl -O http://downloads.buildout.org/2/bootstrap.py