Oh cielos !
Este How-to es aplicable a:
Plone 3.0.X, Plone 3.1.X
Este how-to está destinado a:
Desarrollador
Propósito
En una implantación Plone para desarrollo o pruebas necesitaremos o desearemos mantener constantemente actualizados a las últimas versiones disponibles los productos de la instancia donde trabajamos.
Estar pendiente de las nuevas versiones y actualizar manualmente cada uno de los productos del control de código es una tarea repetitiva, poco productiva y pesada.
Este pequeño how-to, explica como instalar y configurar Infrae.subversion en nuestra instancia de Plone para verificar, descargar y actualizar automáticamente las últimas versiones de todos los productos que deseemos.
Prerrequisitos
Será necesaria una implantación Plone >= 3.0.x realizada con la herramienta paster , ZopeSkel y tener el buildout bien configurado.
En el último apartado de este how-to podéis encontrar enlaces con más información sobre la instalación y uso de easy_install, zc.buildout y ZopeSkel.
Paso a paso
1 - Instalación Infrae.subversion
El primer paso es instalar en nuestro python el paquete Infrae.subersion, para ello aprovechamos easy_install con el que con un simple comando descargará e instalara el paquete así como todas las dependencias necesarias.
$ easy_install infrae.subversion Searching for infrae.subversion Best match: infrae.subversion 1.0dev-r27844 Downloading http://pypi.python.org/packages/2.4/i/infrae.subversion/infrae.subversion-1.0dev_r27844-py2.4.egg#md5=ea4f6663281bde98a4e78cf8dd8805f0 Processing infrae.subversion-1.0dev_r27844-py2.4.egg
2 - Configuración del buildout
Ahora creamos una nueva sección en el archivo de configuración del buildout (buildout.cfg), para que utilice el paquete que acabamos de instalar indicando la receta del mismo.
En el ejemplo la llamaremos productos-desarrollo con este nombre se identificará la nueva parte del buildout y además será el nombre del directorio dentro de parts donde se instalarán los productos.
...
[productdistros]
recipe = plone.recipe.distros
urls =
nested-packages =
version-suffix-packages =
[productos-desarrollo]
recipe = infrae.subversion
urls =
[instance]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
...
Para que se tenga en cuenta la nueva sección deberemos añadirla a la sección buildout del mismo archivo de configuración.
[buildout]
parts =
plone
zope2
productdistros
instance
zopepy
productos-desarrollo
...
Por último, indicamos a la instancia de Plone que tenga en cuenta los productos que se instalaran según le indiquemos en esta nueva sección.
...
[instance]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
user = admin:admin
http-address = 6181
debug-mode = on
verbose-security = on
# If you want Zope to know about any additional eggs, list them here.
# This should include any development eggs you listed in develop-eggs above,
# e.g. eggs = ${buildout:eggs} ${plone:eggs} my.package
eggs =
${buildout:eggs}
${plone:eggs}
# If you want to register ZCML slugs for any packages, list them here.
# e.g. zcml = my.package my.other.package
zcml =
products =
${buildout:directory}/products
${productdistros:location}
${plone:products}
${productos-desarrollo:location}
...3 - Añadir direcciones del repositorio y lanzar buildout
Ya solo falta introducir las URL's del repositorio para los productos que queramos instalar y cada vez que ejecutemos el buildout se ejecutará para cada uno de ellos el checkout del subversion.
...
[productos-desarrollo]
recipe = infrae.subversion
urls =
http://svn.plone.org/svn/collective/ATSchemaEditorNG/trunk/ ATShcemaEditorNG
...$ ./bin/buildout Updating plone. Updating zope2. Updating productdistros. Installing productos-desarrollo. Installing instance. Updating zopepy.
Ahora dentro del directorio parts podremos encontrar el producto ATShcemaEditorNG , versión trunk actualizada del repositorio de plone.org y evidentemente al ejecutar la instancia , Plone detectará e instalara el producto.
Más información
Este how-to está centrado solo en la instalación y configuración de Infrae.subversion dando por hecho que el lector sabe usar herramientas como el setuptools y zc-buildout para generar una implantación de Plone.
- Recomendamos este fantástico tutorial de Martin Aspeli disponible en plone.org. http://plone.org/documentation/tutorial/buildout/
- Otro buen artículo relacionado con los buildout, esta vez en español, lo podéis encontrar en el blog de Mikel Larreategi miembro de la comunidad. http://eibar.org/blogak/erral/es/archive/2007/10/04/499

