Los recipes son los mecanismos de plugin proveídos por Buildout para agregar nuevas funcionalidades para construir su software.
Una parte del Buildout es creado por una receta, esta es la receta responsable de la instalación / desinstalación de su software
Cada parte se crea bajo el directorio parts/ para el uso específico de la parcial receta de la construcción.
Truco
Este directorio no está destinado a la modificación por parte del programador.
Cada sección definida en la declarativa parts = utiliza una receta para supervisar su instalación / desinstalación, el nombre de una parte es arbitraria. En algunos casos una receta creará archivos usando el prefijo del nombre de la receta. El resto de las líneas nombre = valor debajo de una sección parcial son simples argumentos que se pasan a la receta en tiempo de compilación para parametrizar los valores por defecto a sus necesidades.
Las recetas son escritos en Python, estos son distribuidos como Egg. Son de mucha utilidad para trabajar con paquetes Egg en desarrollo ya que esta lo soportan.
Las recetas son siempre instalado como un paquetes Egg de Python. Ellos pueden ser descargados desde un servidor de paquetes, como el Python Package Index (PyPI), otro ellos pueden ser desarrollados como parte de un proyecto usando un paquete Egg de desarrollo. este es un tipo especial de paquete Egg que se instala como un vínculo de huevo que contiene el nombre de un directorio de origen.
Los paquetes Egg de desarrollo no tienen que ser empaquetados para distribución para ser usados y se puede modificar en en sitio, lo cual es especialmente útil cuando se están desarrollando.
A continuación se describen una serie de recetas útiles para diversos casos de usos la construcción de Python / Zope / Plone:
mr.developer, es una extensión de zc.buildout la cual hace fácil trabajar con buildout que contiene muchos paquetes que contienen gran cantidad de paquetes de los cuales sólo desea desarrollar algunos, a continuación un ejemplo de configuración:
[buildout]
# For options see http://pypi.python.org/pypi/mr.developer
extensions = mr.developer
auto-checkout =
my.package
some.other.package
eggs =
my.package
some.other.package
[sources]
my.package = svn http://example.com/svn/my.package/trunk update=true
some.other.package = git git://example.com/git/some.other.package.git
infrae.subversion, es una receta buildout para instalar productos Zope y productos Plone que están disponibles en sistemas de control de versiones SVN, a continuación un ejemplo de configuración:
[buildout]
parts =
svnproducts
# Get TickingMachine directly from SVN since it's not eggified
# For options see http://pypi.python.org/pypi/infrae.subversion
[svnproducts]
recipe = infrae.subversion
urls =
http://tickingmachine.googlecode.com/svn/trunk TickingMachine
# In the case you're installing an old product (not eggified) you will also need
# to register it in products value at the [instance] section so that they get added
# to your Python path:
products =
${buildout:directory}/products
${productdistros:location}
${plone:products}
${svnproducts:location}
plone.recipe.bundlecheckout, es una receta buildout para instalar productos Zope y productos Plone que están disponibles en sistemas de control de versiones como CVS y SVN, a continuación un ejemplo de configuración:
[buildout]
parts =
docfindertab
# For options see http://pypi.python.org/pypi/plone.recipe.bundlecheckout
[docfindertab]
recipe = plone.recipe.bundlecheckout
url = https://svn.plone.org/svn/collective/DocFinderTab/trunk
subfolder = DocFinderTab
plone.recipe.distros, es una receta buildout para instalar disfribuciones de software bajo el concepto de paquete bundle, a continuación un ejemplo de configuración:
[buildout]
parts =
productdistros
# For options see http://pypi.python.org/pypi/plone.recipe.distros
# Quills products:
[productdistros]
recipe = plone.recipe.distros
urls =
http://plone.org/products/quills/releases/1.6/quills-1-6-beta1.tgz
collective.recipe.plonesite, es una receta buildout para crear y actualizar un sitio Plone. Este receta le permite habilitar de crear y actualizar un sitio Plone como parte de una ejecución buildout.
Este receta sólo tiene por objeto ejecutar perfiles y productos en la herramienta portal_quickinstaller. Se supone que los métodos de instalación, setuphandlers, pasos de actualización, y otras recetas se encargará del resto del trabajo, a continuación un ejemplo de configuración:
[buildout]
parts =
plonesite
# For options see http://pypi.python.org/pypi/collective.recipe.plonesite
[plonesite]
recipe = collective.recipe.plonesite
site-id = Plone
instance = instance
profiles =
collective.myapp:default
collective.recipe.updateplone, es una receta buildout para actualizar sitios Plone, a continuación un ejemplo de configuración:
[buildout]
parts =
update-site
# For options see http://pypi.python.org/pypi/collective.recipe.updateplone
[update-site]
recipe = collective.recipe.updateplone
plone-site = instance.Plone
install = mypackage.policy
run-once = False
migrate-plone = True
backup-db = True
pack-db = True
plone.recipe.command, es una receta buildout para ejecutar instrucciones desde linea de comando arbitrariamente desde buildout, a continuación un ejemplo de configuración:
[buildout]
parts =
mkdir-config
# For options see http://pypi.python.org/pypi/plone.recipe.command
[mkdir-config]
recipe = plone.recipe.command
command =
mkdir ${buildout:directory}/config
update-command = ${mkdir-config:command}
collective.recipe.backup, proporciona parámetros por defecto para las tareas de respaldo de datos comunes. El script ./bin/repozo es un script zope para hacer copias de seguridad de Data.fs.
plone.recipe.apache, es una receta buildout para compilar, instalar un servidor Web Apache desde los archivos fuentes con la configuración adecuada.
zest.recipe.mysql, es una receta buildout para definir una base de datos MySQL.
z3c.recipe.ldap, es una receta buildout para desplegar una servidor OpenLDAP.
Existe una lista de recetas buildout disponibles en los siguientes enlaces:
Ver también
Artículos sobre replicación de proyectos Python.
El código fuente de este archivo esta hospedado en GitHub. Todos pueden actualizar y corregir errores en este documento con unos clic - sin necesidad de descargar.
Para mas información básica acerca de como actualizar este manual y referencia a sintaxis Sphinx, por favor consulte la guía Escribiendo y actualizando el manual.