Recipes Buildout

¿Qué son los Recipes?

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.

¿Cómo instalarlos?

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:

Control de versiones

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

Ensamblaje de Plone

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

Servicios y hosting

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.

Recetas disponibles

Existe una lista de recetas buildout disponibles en los siguientes enlaces:

Artículos relacionados

Ver también

Artículos sobre replicación de proyectos Python.

Referencias

los comentarios son proporcionados por Disqus

Editar este documento

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.

  1. Vaya hacia el articulo Recipes Buildout en GitHub.
  2. Presione el botón Fork. Este creara su propia copia personal de la documentación.
  3. Edite los archivos usando el editor de texto de GitHub desde su navegador Web
  4. Rellene en la caja de texto Commit message al final de la pagina indicando por que usted realizo estos cambios. Presione el botón Propose file change próximo a ese cuando haya finalizado.
  5. Luego diríjase a la página Send a pull request (no será necesario rellenar ningún texto adicional). Sólo tiene que pulsar el botón Send pull request.
  6. Sus cambios serán consultados por un revisor dentro de la pestaña Pull requests del proyecto en Github.

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.