Weitere Entwicklungswerkzeuge
Wollen wir weitere Entwicklungswerkzeuge in einem Buildout-Projekt installieren, geben wir diese einfach in der buildout.cfg-Datei an. Folgende Entwicklungswerkzeuge können die Arbeit deutlich vereinfachen:
- DocFinderTab
Produkt, das alle Klassen und Methoden eines Objekts im Zope Management Interface (ZMI) auflistet.
DocFinderTab kann direkt als Egg in der Instanz angegeben werden:
[instance] … eggs = Products.DocFinderTab- pyflakes
Pyflakes analysiert Python-Programme und entdeckt verschiedene Fehlerarten. Es ist sehr viel schneller als das Ausführen der Programme.
pyflakes lässt sich einfach mit Buildout installieren:
parts = … pyflakes [pyflakes] recipe = zc.recipe.egg:scripts eggs = pyflakes scripts = pyflakes entry-points = pyflakes=pyflakes.scripts.pyflakes:main- plone.app.debugtoolbar
Debug-Toolbar, die einfach für eine Plone-Site aktiviert werden kann. Die Installation kann einfach mit Buildout erfolgen:
[instance] … eggs = plone.app.debugtoolbar- pylint
Pylint analysiert Python-Code in Bezug auf Bugs und geringe Code-Qualität.
Pylint lässt sich einfach mit Buildout installieren:
parts = pylint … [pylint] recipe = zc.recipe.egg eggs = ${instance:eggs} pylint entry-points = pylint=pylint.lint:Run arguments = sys.argv[1:]- DeadlockDebugger
- Für entsprechende Prozesse wird Debugging möglich, indem ein Traceback aller laufenden Pythonprozesse sowohl zum Eventlog als auch zum Browser geschickt wird.
- PDBDebugMode
- PDBDebugMode erlaubt sog. post-mortem-Debugging für exceptions im Debug-Modus, d.h., bei einem Fehler wird der Debugger aufgerufen, der den Traceback ausgibt.
Diese Entwicklungswerkzeuge lassen sich einfach angeben mit:
[instance] … debug-mode = on eggs = Products.PDBDebugMode z3c.deadlockdebugger
- Products.PrintingMailHost
- Monkey Patch, der MailHost-Nachrichten nicht verschickt, sondern auf der Konsole ausgibt, d.h., Zope versendet damit keine Mails mehr.
- roadrunner
Testrunner, der die testgetriebene Entwicklung deutlich beschleunigen kann.
roadrunner läd vorab das Standard-Zope- und Plone-Environment für PloneTestCase. zur Installation wird einfach folgendes in die buildout.cfg-Datei eingetragen:
[buildout] parts = … roadrunner [roadrunner] recipe = roadrunner:plone packages-under-test = vs.policyAnschließend kann es wie der reguläre Zope-Testrunner aufgerufen werden:
$ ./bin/roadrunner -s vs.policy
- collective.recipe.grp
Rezept, mit dem in Buildout auf ${grp:GROUP} referenziert werden kann um die Gruppe des aktuellen Nutzers herauszubekommen.
Zusammen mit gocept.recipe.env, das Environment-Variablen in einem Buildout-Abschnitt zur Verfügung stellt, lassen sich hiermit die Eigentümer (Owner) der Buildout-Inhalte setzen lassen, z.B. mit:
chown -R ${env:USER}:${grp:GROUP} ${buildout:directory}Installieren lassen sich die Pakete mit:
[env] recipe = gocept.recipe.env [grp] recipe = collective.recipe.grp