Hudson y Trac

13 06 2009

Hudson

Hudson es una herramienta de software utilizada para la realización de integración continua en el desarrollo de proyectos de software. Esta escrita en Java, tiene soporte para herramientas de control de versiones tales como CVS y Subversion. Tiene capacidad de ejecutar proyectos basados en Apache Ant y Apache Maven. Así mismo cabe mencionar que se ejecuta en un contenedor de servlets, el cual puede ser Apache Tomcat o GlassFish. La construcción que realiza se puede realizar por varios medios, entre ellos incluido uno similar a Cron, mientras que otros se basan en la construcción que hay concluido.

Es una herramienta con licencia MIT y algunas partes con licencia de Creative Commons (Reconocimiento y Compatir igual), su principal promotor es Kohsuke Kawaguchi.

Hudson monitorea ejecuciones de trabajos repetidos, como una construcción de proyectos de software o trabajos que corren dirigidos por cron. Entre otras cosas, Hudson se centra principalmente en los dos siguientes trabajos.

  • Construcción y pruebas de proyectos de software continuamente. Hudson ofrece una forma fácil de utilización de un sistema de integración continua, lo que hace fácil a los desarrolladores, la integración de sus proyectos de software y que a su vez aumenta la productividad mendiante la integración continua automatizada.

  • Monitoreo de ejecuciones de trabajos que corren externamente. Como trabaja con Cron y procmail, se pueden revicibir mensajes de notificación de la ejecución de procesos externos y enterarse de cuando algo anda mal. Esto mediante el envio de la salida de los procesos.

Porque usar Hudson?

  • Es de fácil instalación, está al alcance de la ejecución del comando java -jar en una terminal de comandos.

  • Es de fácil configuración, tiene una fácil interfaz web que nos muestra el estado de los trabajos y revisiones de error.

  • Configuración XML, no es necesario configurar ningun archivo XML, sin embargo, si se desea se puede hacer manualmente.

  • Cambio de soporte, puede generar una lista de cambios realizados en la construcción de Subversion o CVS.

  • RSS/e-mail/IM, contiene un monitor para construir resultados mediante RSS o mail, para recibir información en tiempo real sobre los errores que pudieran surgir.

  • Reporte de pruebas, generación de reporte de pruebas de JUnit, esta información puede ser tabulada y resumidad para su presentación. El historial puede ser presentado en una gráfica.

  • Construcciones distribuidas, puede distribuir/construir pruebas de carga en varios equipos.

  • Archivo de huellas dactilares, puede realizar un seguimiento de la construcción hecha por los jars y que construcción esta utilizando con que version de los jars.

  • Soporte de pluggins, capacidad de ampliación mediante pluggins, los cuales puden ser desarrollados también por los usuarios.

Trac

Trac es un sistema web libre para la gestión de proyectos y seguimiento de errores, es multiplataforma, ligero y extensible. Esta basado en CVSTrack y originalmente era llamado SVNTrac por su fuerte dependencia de Subversion. Esta escrito en Pyton, es distribuido por Edgewall Software. Hasta su versión 0.8 estaba bajo una licencia GNU GPL, sin embargo de la 0.9 en adelante está bajo una licencia BSD modificada. Entre las funcionalidades que ofrece, estan:

  • Un wiki que se puede emplear para documentar cualquier aspecto del proyecto de modo colaborativo y sin necesidad de herramientas especiales (sólo necesitamos los permisos adecuados y un navegador web).

  • La sintaxis del wiki se puede emplear en casi todos los módulos del sistema (por ejemplo en los tickets), se permite la definición y empleo de macros (p. ej. para generar listas de cambios) y la inclusión de texto con sintáxis distintas a la del Wiki como html o rst.

Trac siendo una interfaz de lectura para el repositorio de subversion, nos permite definir y visulizar graficamente el estado de los hitos (que incluye descripción y fecha) de un proyecto, a la vez que nos permite tener un seguimiento de eventos en el sistema, también nos permite la búsqueda de paginas del wiki, mediante palabras.

Porque usar Track?

  • Es una interfaz dedicada para la lectura del repositorio de sistemas de control de versiones.

  • Nos proporciona de un wiki para la documentación colaborativa del proyecto.

  • Muestra información detallada sobre los cambios realizados en el wiki, sin necesidad de herramientas extras.

  • Permite el enlace hacia una base de datos de errores de software.

  • Permite la comparativa entre una y otra versión desde su interfaz.

  • Es un gestor de incidencias, con el cual podemos darle seguimiento a una determinada y ver su evolución.

Alternativas a Trac

CruiseControl

Es una herramienta de código abierto, la cual sirve para el control de compilaciones automaticas de proyectos Java, usando Maven o Ant.

Es muy utilizada para la realización de la integración continua. Periodicamente realiza la compilación de nuestros proyectos, para ver si el codigo y los cambios son correctos y asi detectar errores y cuando los hay rapidamente envia una notificación o alarma, al cual puede ser mediante RSS, e-mail, html o Jabber.

Cuando se detecta que una compilación no es exitosa, manda una notificación, lo cual permite que rápidamente se realicen acciones para contrarestar dichos errores. Permite la detección de los errores de manera rápida, asi como también quien o quienes fueron los autores. Esta es un herramienta muy util cuando muchas personas trabajan en el mismo proyecto. Permite tener muchas versiones ejecutables con pequeños cambios.

Es un sistema que esta en ejecución y cada cierto ciclo de compilacion (tiempo) o build loop, revisa nuestro repositorio de control de versiones en busca de cambios hechos en nuestros proyectos y si los hubieran realiza las acciones respectivas. Este build loop, es configurable y puede hacerse cuando se detecta un cambio en el repositorio o cada cierto tiempo que se considere correcto. Cada una de estas fases genera un reporte de compilación en donde se detallan los cambios y pruebas hechas, comparación entre la vesión anterior y la nueva, información respectiva a la compilación y los links hacia la misma.

  • El archivo xml de configuración puede llegar a ser demasiado grande.

  • Las modificaciones de vuelven tediosas, cuando se hacen para varios proyectos.

  • Tiene algun tipo de dependencia del tipo de navegador.

  • En ocasiones botón build funciona y en otras no.

Continuum

Es una herramienta para la integración continua de proyectos de software. Continuum, en un proyecto java, está pendiente de las modificaciones en los fuentes, para compilar automáticamente cada cierto tiempo y avisar por medio de e-mail a los programadores en caso de fallo.

Continuum es un servidor de integración continua con características tales como construcción automatizada, manejo de releases, seguridad basada en funciones, y la integración con las mas populares herramientas de construcción y sistemas de control de código fuente. Es útil cuando se tiene un equipo centralizado de desarrollo o cuando se quiere poner el control de las versiones en las manos de los desarrolladores. Continuum nos puede ayudar a mejorar la calidad y mantener un entorno de desarrollo consistente.

  • Continuum no permite colocar nombres distintos a los ejecutables que no sean el nombre del proyecto.

  • Requiere que en el archivo pom.xml, este la información para el sistema de control de versiones, donde deben estar todos los datos del desarrollador, hasta su password, lo cual se convierte en una deficiencia si el equipo esta integrado por varias personas, pues esto crea una vulnerabilidad al vernos obligados a crear un usuario anonimo con permisos de solo lectura para que todos tengan acceso.

Comandos de terminal para Subversion

Create: Con este comando se crea un repositorio nuevo.

sudo svnadmin create /dir/del/repositorio

Checkout: Con este comando se hace una copia del proyecto que se esta trabajando.

$ svn checkout file:///repositorio/trunk /dir/de/proyecto

Export: Este comando se usa para exportar el arbol de directorios.

sudo svn export http://localhost/proyecto1 /dir/del/proyecto

Import: Este comando importa de manera repetitiva los cambios hechos en un proyecto hacia el repositorio.

sudo svn import /dir/proyecto http://localhost/proyecto1

Anuncios

Acciones

Information

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: