Buildout

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Buildout
Desarrollador
Zope Corporation
buildout.org
Información general
Diseñador Jim Fulton
Última versión estable 2.0.0b1
21 de enero de 2013; hace 1 año (2013-01-21)
Género Sistema automático de construcción
Programado en Python
Sistema operativo Multiplataforma
Plataforma i386, x86_64
Licencia Zope Public License
Idiomas inglés
En español No No

Buildout es una herramienta open source de construcción de software, utilizada principalmente en la comunidad de Python y Zope. Buildout está escrita en Python. Tanto Plone como Zope usan buildout como su herramienta de construcción.

Buildout está basado en el principio de configurar mediante ficheros de texto qué dependencias tiene una pieza de código para poder ser construida y ejecutada. Buildout descarga de los repositorios de Python (PyPI u otros repositorios configurados) las dependencias y las incluye en el "path" del intérprete de Python dinámicamente, de manera que el proyecto puede desplegarse de manera autocontenida.

Por ejemplo, un proyecto puede definir como dependencia el módulo MySQLdb para interactuar con una base de datos MySQL. Al ser construido en el servidor de producción, MySQLdb es descargado en formato Python egg bajo el directorio principal del proyecto. Cuando se ejecuta el proyecto a través de alguno de los ejecutables definidos (por ejemplo, "~/my_project/bin/start"), MySQLdb es añadido al path de Python. Esto significa que desde el código del proyecto se puede invocar MySQLdb, pero no se ha modificado el intérprete de Python del sistema, que sigue sin saber de la existencia de MySQLdb. Así, no hace falta requerir que el sistema venga ya con la dependencia preinstalada, ni que el operador la instale manualmente.

Aparte de la instalación directa de dependencias, también se pueden definir tareas arbitrarias de construcción (mover ficheros, crear directorios, instalar programas...) llamadas "recetas". Las recetas pueden ponerse también en un repositorio, de manera que estén disponibles para varios proyectos, o para el público en general.

Características principales[editar]

  • Los ficheros de configuración siguen el formato INI de Microsoft Windows.
  • Basado en herramientas estándar de Python como setuptools y Python eggs[1]
  • Ampliable mediante el mecanismo de recetas.[2]

Ejemplo de fichero de configuración[editar]

Típicamente, debe existir un fichero buildout.cfg en el directorio raíz del proyecto, con el siguiente contenido:

  [buildout]
  develop = . 
  parts = test
 
  [test]
  recipe = zc.recipe.testrunner
  eggs = theegg

Aplicaciones que usan buildout[editar]

Existen proyectos que usan buildout para auto-construirse como Grok,[3] Plone,[4] [5] Zope 2[6] y Zope 3,[7] Django.[8] Como adicional hay otros ejemplos de configuraciones de proyectos no Python como es el caso de instalar Wordpress usando buildout.[9]

Véase también[editar]

Referencias[editar]

  1. Python Community. «zc.buildout - System for managing development buildouts» (en inglés). python.org. Consultado el 6 de julio de 2010.
  2. Zope Foundation. «Buildout Recipes — Buildout v1.2.1 documentation» (en ingles). Zope Foundation. Consultado el 28 de enero de 2013.
  3. The Grok Community. «Introduction to zc.buildout — Grok» (en ingles). The Grok Community. Consultado el 28 de enero de 2013.
  4. Python community. «Framework :: Buildout : Framework :: Plone: Browse : Python Package Index» (en ingles). Pypi.python.org. Consultado el 28 de enero de 2013.
  5. Israel Saeta Pérez. «Managing projects with Buildout — Plone CMS: Open Source Content Management» (en ingles). Plone.org. Consultado el 28 de enero de 2013.
  6. Python community. «Framework :: Buildout : Framework :: Zope2: Browse : Python Package Index» (en ingles). Pypi.python.org. Consultado el 28 de enero de 2013.
  7. Python community. «Framework :: Buildout : Framework :: Zope3: Browse : Python Package Index» (en ingles). Pypi.python.org. Consultado el 28 de enero de 2013.
  8. Python community. «Framework :: Buildout : Framework :: Django: Browse : Python Package Index» (en ingles). Pypi.python.org. Consultado el 28 de enero de 2013.
  9. Alex Clark. «Wordpress — pythonpackages.com beta documentation» (en ingles). ACLARK.NET, LLC. Consultado el 28 de enero de 2013.

Enlaces externos[editar]