SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
menttes
 corporate training




                      zc.buildout para
                      desarrolladores Plone


                      Emanuel Sartor
                      emanuel@menttes.com
¿Qué es un buildout?




                       menttes
¿Qué es un buildout?




 La palabra buildout hace referencia a una
 descripción de un conjunto de partes y al software
 para crear y ensamblar esas partes.


 A menudo se usa informalmente para hacer
 referencia a un sistema instalado basado en la
 definición de un buildout.




                                             menttes
¿Qué es un buildout?




 Por ejemplo, si estamos creando una aplicación
 llamada Foo, entonces el buildout de Foo será la
 colección de configuraciones y aplicaciones
 específicas que permiten crear una instancia de la
 aplicación.

 Informalmente podríamos referirnos a tal instancia
 como el buildout de Foo.




                                            menttes
¿Qué es un buildout?



 zc.buildout es una herramienta que nos permite
 definir buildouts. Estas son sus principales
 características:

 ● Permite defnición de buildouts de forma declarativa
 ● Basado en python

 ● Orientado a desarrollador

 ● Repetible

 ● Es fácil trabajar con eggs




                                             menttes
Todo muy lindo...

¿Pero cómo me ayuda esto en el desarrollo
                Plone?




                                  menttes
Desarrollo Plone


 Para configurar un entorno de desarrollo,
 usualmente los siguientes pasos son requeridos:

 ● Descargar, compilar e instalar Zope
 ● Crear una instancia Zope y configurarla

 ● Descargar e instalar Plone

 ● Instalar productos y eggs adicionales requeridos


   por mi proyecto
 ● Agregar a la instancia productos y paquetes que


   estoy desarrollando



                                             menttes
Desarrollo Plone


 Todos estos pasos se pueden realizar manualmente,
 pero esto genera una serie de problemas:

 ● Lento para generar nuevos entornos de desarrollo.
 ● Cada desarrollador es responsable de crear su


   entorno de desarrollo, y algunas diferencia sutiles
   en la configuración puede desembocar en errores
   en el código.

 Todo esto puede ser automático usando
 zc.buildout.


                                              menttes
Mmm... suena bien, pero seguro que tengo
 que leer cientos de tutoriales y un par de
       libros para usar zc.buildout.

  ¿Cómo harías todo eso con zc.buildout?




                                    menttes
Desarrollo Plone con zc.buildout



Vamos a empezar creando un buildout que descargue
Zope, lo compile, lo instale, cree una instancia y la
configure.

 $ mkdir buildout

 $ cd buildout

 $ wget http://svn.zope.org/zc.buildout/trunk/bootstrap/bootstrap.py

 $ vim buildout.cfg




                                                          menttes
buildout.cfg

 [buildout]
 parts =
   zope2
   instance


 [zope2]
 recipe = plone.recipe.zope2install
 url = http://www.zope.org/Products/Zope/2.10.5/Zope-2.10.5-final.tgz


 [instance]
 recipe = plone.recipe.zope2instance
 zope2-location = ${zope2:location}
 user = admin:admin
 http-address = 8080
 debug-mode = on
 verbose-security = on



                                                                 menttes
buildout.cfg




 La sección [buildout] es el punto de inicio del
 archivo. Este lista un número de partes las cuales
 serán configuradas más adelante en el archivo.




                                             menttes
buildout.cfg




 Cada parte tiene una receta (recipe) asociada, la
 cual es el nombre de un egg que sabe cómo realizar
 una tarea determinada, por ejemplo, compilar Zope
 o crear una instancia.




                                           menttes
buildout.cfg




 Una receta toma típicamente algunas opciones de
 configuración.




                                          menttes
Hasta ahora tenemos...




 ●   bootstrap.py: es un script que va a instalar
     setuptools y zc.buildout en el directorio buildout
     que creamos sin interferir con los paquetes
     instalados globalmente.

 ●   buidout.cfg: la definición de un buildout que
     instala Zope y configura una instancia.




                                                 menttes
zc.buildout en acción


 $ python2.4 bootstrap.py

 $ bin/buildout

 [esperamos un rato]

 $ bin/instance fg

 Listo, ya podemos acceder a nuestra instancia Zope
 2.10.5 apuntando nuestro navegador a
 http://localhost:8080


                                           menttes
zc.buildout en acción


 Supongamos que por error instalamos Zope 2.10.5,
 pero que en realidad necesitabamos instalar la
 versión 2.10.4. Supongamos también que queremos
 que la instancia ocupe el puerto 8090 en lugar del
 8080.

 En ese caso, en el archivo buildout.cfg modificamos
 la URL de la cuál se descarga Zope, así también
 como el número de puerto y luego volvemos a
 ejecutar:

 $ bin/buildout

                                            menttes
Bien... comienzo a sentirme mejor.

    ¿Cómo instalamos Plone?




                               menttes
buildout.cfg (primera parte)


 [buildout]
 parts =
   zope2
   instance
   plone
 eggs =


 [plone]
 recipe = plone.recipe.plone
 # recipe = plone.recipe.plone==3.0.1


 [zope2]
 recipe = plone.recipe.zope2install
 url = ${plone:zope2-url}



                                        menttes
buildout.cfg (segunda y última parte)



 [instance]
 recipe = plone.recipe.zope2instance
 zope2-location = ${zope2:location}
 user = admin:admin
 http-address = 8080
 debug-mode = on
 verbose-security = on
 eggs =
    ${buildout:eggs}
    ${plone:eggs}
 zcml =

 products =
   ${plone:products}




                                        menttes
buildout.cfg



 Las recetas pueden exponer variables para ser
 usadas por otras partes en la configuración del
 buildout.

 Por ejemplo, en [zope2] se hace referencia
 a ${plone:zope2-url}, que es una variable emitida
 por la parte [plone] y que tiene como valor el URL
 del Zope adecuado para la versión de Plone a
 instalar.




                                             menttes
buildout.cfg




 Se puede especificar explícitamente la versión de la
 receta a utilizar (recordar que las recetas son eggs).
 Un ejemplo de esto es el comentario en la sección
 [plone] en el que se especifica que se usará la
 versión 3.0.1 de la receta plone.recipe.plone.




                                               menttes
menttes
 corporate training




                      Muchas gracias

Más contenido relacionado

Similar a Desarrollo Plone con zc.buildout

Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y GitDesplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Gitmoisesgallego
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesionajussis
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalaciónajussis
 
Equipo9
Equipo9Equipo9
Equipo9CUI
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteKuboosoft
 
Greach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonGreach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonMario García
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del KernelJuan Sánchez
 
CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4Daniel Irene
 
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...Freddy Banguero
 

Similar a Desarrollo Plone con zc.buildout (20)

Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y GitDesplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
 
Anatomia de Plone
Anatomia de PloneAnatomia de Plone
Anatomia de Plone
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesion
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalación
 
Equipo9
Equipo9Equipo9
Equipo9
 
Practica adicional
Practica adicionalPractica adicional
Practica adicional
 
Despues de instalar fedora 14
Despues de instalar fedora 14Despues de instalar fedora 14
Despues de instalar fedora 14
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
 
TALLER DE REDES 2 PERIODO
TALLER DE REDES 2 PERIODO TALLER DE REDES 2 PERIODO
TALLER DE REDES 2 PERIODO
 
Taller de redes
Taller de redesTaller de redes
Taller de redes
 
Taller de redes
Taller de redesTaller de redes
Taller de redes
 
Greach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonGreach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con Griffon
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Visual studio c_
Visual studio c_Visual studio c_
Visual studio c_
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del Kernel
 
CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4
 
Instalar odoo 9 en Linux Debian
Instalar odoo 9 en Linux DebianInstalar odoo 9 en Linux Debian
Instalar odoo 9 en Linux Debian
 
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
 
Getting Started with ChatBots
Getting Started with ChatBotsGetting Started with ChatBots
Getting Started with ChatBots
 

Más de Roberto Allende

Fearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentFearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentRoberto Allende
 
Creencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupCreencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupRoberto Allende
 
11 Slides de Droidcon NYC
11 Slides de Droidcon NYC11 Slides de Droidcon NYC
11 Slides de Droidcon NYCRoberto Allende
 
Startup escalables y organicos
Startup escalables y organicosStartup escalables y organicos
Startup escalables y organicosRoberto Allende
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebRoberto Allende
 
La idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableLa idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableRoberto Allende
 
Emprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasEmprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasRoberto Allende
 
Innovar: comunicar y hacer
Innovar: comunicar y hacerInnovar: comunicar y hacer
Innovar: comunicar y hacerRoberto Allende
 
Introducción a Leanstartup
Introducción a LeanstartupIntroducción a Leanstartup
Introducción a LeanstartupRoberto Allende
 
PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno Roberto Allende
 
Menttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreMenttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreRoberto Allende
 
Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en PloneRoberto Allende
 
Desarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLDesarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLRoberto Allende
 
Curso Zope Page Templates y Metal
Curso Zope Page Templates y MetalCurso Zope Page Templates y Metal
Curso Zope Page Templates y MetalRoberto Allende
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamientoRoberto Allende
 
Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Roberto Allende
 
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...Roberto Allende
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaRoberto Allende
 

Más de Roberto Allende (20)

Fearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentFearless Coding with Test Driven Development
Fearless Coding with Test Driven Development
 
Creencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupCreencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un Startup
 
11 Slides de Droidcon NYC
11 Slides de Droidcon NYC11 Slides de Droidcon NYC
11 Slides de Droidcon NYC
 
Startup escalables y organicos
Startup escalables y organicosStartup escalables y organicos
Startup escalables y organicos
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la Web
 
La idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableLa idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalable
 
Emprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasEmprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experiencias
 
Innovar: comunicar y hacer
Innovar: comunicar y hacerInnovar: comunicar y hacer
Innovar: comunicar y hacer
 
Introducción a Leanstartup
Introducción a LeanstartupIntroducción a Leanstartup
Introducción a Leanstartup
 
Taller de Gamification
Taller de GamificationTaller de Gamification
Taller de Gamification
 
PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno
 
Menttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreMenttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software Libre
 
Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en Plone
 
Catedral y Bazaar
Catedral y BazaarCatedral y Bazaar
Catedral y Bazaar
 
Desarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLDesarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXML
 
Curso Zope Page Templates y Metal
Curso Zope Page Templates y MetalCurso Zope Page Templates y Metal
Curso Zope Page Templates y Metal
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
 
Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3
 
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo Batista
 

Último

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Último (15)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Desarrollo Plone con zc.buildout

  • 1. menttes corporate training zc.buildout para desarrolladores Plone Emanuel Sartor emanuel@menttes.com
  • 2. ¿Qué es un buildout? menttes
  • 3. ¿Qué es un buildout? La palabra buildout hace referencia a una descripción de un conjunto de partes y al software para crear y ensamblar esas partes. A menudo se usa informalmente para hacer referencia a un sistema instalado basado en la definición de un buildout. menttes
  • 4. ¿Qué es un buildout? Por ejemplo, si estamos creando una aplicación llamada Foo, entonces el buildout de Foo será la colección de configuraciones y aplicaciones específicas que permiten crear una instancia de la aplicación. Informalmente podríamos referirnos a tal instancia como el buildout de Foo. menttes
  • 5. ¿Qué es un buildout? zc.buildout es una herramienta que nos permite definir buildouts. Estas son sus principales características: ● Permite defnición de buildouts de forma declarativa ● Basado en python ● Orientado a desarrollador ● Repetible ● Es fácil trabajar con eggs menttes
  • 6. Todo muy lindo... ¿Pero cómo me ayuda esto en el desarrollo Plone? menttes
  • 7. Desarrollo Plone Para configurar un entorno de desarrollo, usualmente los siguientes pasos son requeridos: ● Descargar, compilar e instalar Zope ● Crear una instancia Zope y configurarla ● Descargar e instalar Plone ● Instalar productos y eggs adicionales requeridos por mi proyecto ● Agregar a la instancia productos y paquetes que estoy desarrollando menttes
  • 8. Desarrollo Plone Todos estos pasos se pueden realizar manualmente, pero esto genera una serie de problemas: ● Lento para generar nuevos entornos de desarrollo. ● Cada desarrollador es responsable de crear su entorno de desarrollo, y algunas diferencia sutiles en la configuración puede desembocar en errores en el código. Todo esto puede ser automático usando zc.buildout. menttes
  • 9. Mmm... suena bien, pero seguro que tengo que leer cientos de tutoriales y un par de libros para usar zc.buildout. ¿Cómo harías todo eso con zc.buildout? menttes
  • 10. Desarrollo Plone con zc.buildout Vamos a empezar creando un buildout que descargue Zope, lo compile, lo instale, cree una instancia y la configure. $ mkdir buildout $ cd buildout $ wget http://svn.zope.org/zc.buildout/trunk/bootstrap/bootstrap.py $ vim buildout.cfg menttes
  • 11. buildout.cfg [buildout] parts = zope2 instance [zope2] recipe = plone.recipe.zope2install url = http://www.zope.org/Products/Zope/2.10.5/Zope-2.10.5-final.tgz [instance] recipe = plone.recipe.zope2instance zope2-location = ${zope2:location} user = admin:admin http-address = 8080 debug-mode = on verbose-security = on menttes
  • 12. buildout.cfg La sección [buildout] es el punto de inicio del archivo. Este lista un número de partes las cuales serán configuradas más adelante en el archivo. menttes
  • 13. buildout.cfg Cada parte tiene una receta (recipe) asociada, la cual es el nombre de un egg que sabe cómo realizar una tarea determinada, por ejemplo, compilar Zope o crear una instancia. menttes
  • 14. buildout.cfg Una receta toma típicamente algunas opciones de configuración. menttes
  • 15. Hasta ahora tenemos... ● bootstrap.py: es un script que va a instalar setuptools y zc.buildout en el directorio buildout que creamos sin interferir con los paquetes instalados globalmente. ● buidout.cfg: la definición de un buildout que instala Zope y configura una instancia. menttes
  • 16. zc.buildout en acción $ python2.4 bootstrap.py $ bin/buildout [esperamos un rato] $ bin/instance fg Listo, ya podemos acceder a nuestra instancia Zope 2.10.5 apuntando nuestro navegador a http://localhost:8080 menttes
  • 17. zc.buildout en acción Supongamos que por error instalamos Zope 2.10.5, pero que en realidad necesitabamos instalar la versión 2.10.4. Supongamos también que queremos que la instancia ocupe el puerto 8090 en lugar del 8080. En ese caso, en el archivo buildout.cfg modificamos la URL de la cuál se descarga Zope, así también como el número de puerto y luego volvemos a ejecutar: $ bin/buildout menttes
  • 18. Bien... comienzo a sentirme mejor. ¿Cómo instalamos Plone? menttes
  • 19. buildout.cfg (primera parte) [buildout] parts = zope2 instance plone eggs = [plone] recipe = plone.recipe.plone # recipe = plone.recipe.plone==3.0.1 [zope2] recipe = plone.recipe.zope2install url = ${plone:zope2-url} menttes
  • 20. buildout.cfg (segunda y última parte) [instance] recipe = plone.recipe.zope2instance zope2-location = ${zope2:location} user = admin:admin http-address = 8080 debug-mode = on verbose-security = on eggs = ${buildout:eggs} ${plone:eggs} zcml = products = ${plone:products} menttes
  • 21. buildout.cfg Las recetas pueden exponer variables para ser usadas por otras partes en la configuración del buildout. Por ejemplo, en [zope2] se hace referencia a ${plone:zope2-url}, que es una variable emitida por la parte [plone] y que tiene como valor el URL del Zope adecuado para la versión de Plone a instalar. menttes
  • 22. buildout.cfg Se puede especificar explícitamente la versión de la receta a utilizar (recordar que las recetas son eggs). Un ejemplo de esto es el comentario en la sección [plone] en el que se especifica que se usará la versión 3.0.1 de la receta plone.recipe.plone. menttes
  • 23. menttes corporate training Muchas gracias