Instalando Retrospectiva Project Management en Debian 5.0 “Lenny”

En nuestra empresa, soluciones 3f, utilizamos hasta ahora Trac + Agilo para el seguimiento de los proyectos con metodología Scrum. Lamentablemente Agilo probó ser lo suficientemente complejo, lento, e incómodo para que la herramienta comience a ser una molestia y decidimos buscar una nueva. (es una lástima porque con Trac estábamos muy satisfechos)

Así es como nos recomendaron Retrospectiva y le hemos querido dar una mirada.

Primero utilizando vmware creamos una máquina virtual nueva con un Debian 5 instalado desde un netinstall con las opciones mínimas e imprescindibles. Nos gusta mantener nuestras máquinas virtuales lo más livianas posibles para poder tener varias.

Es la primera vez que instalo un programa realizado en Ruby, de hecho es la primera vez que uso Ruby así que está siendo una experiencia interesante.

Instalación usando Single Step Installer

La gente de retrospectiva es consciente de los usuarios impacientes como yo y nos proporcionaron un Single Step Installer que con solo dos lineas de comando debería instalar una versión operativa de Retrospectiva.

Seguir las instrucciones al pie de la letra, desde un debian recién instalado es una tarea condenada al fracaso. No solo que no indican todas las dependencias que hay, sino que incluso las versiones del software disponibles en los repositorios oficiales de debian es muy vieja para la versión actual de Retrospectiva (en este momento 2.0 stable)

Primero debemos instalar los paquetes del repositorio, para lo cual hacemos

apt-get install ruby ruby-dev sqlite3 libsqlite3-ruby build-essential libopenssl-ruby

La versión de RubyGems que se encuentra en los repositorios de Debian 5 no es lo suficientemente actual, por lo que debemos instalarla manualmente. Al momento de escribir este artículo la versión actual es  RubyGens 1.3.6 la cual puede ser descargada del sitio oficial http://rubygems.org

wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.6.tgz
cd rubygems-1.3.6
ruby setup.rb

Instalado RubyGems ahora si podemos proceder con la instalación del installer de retrospectiva. Primero nos movemos al directorio donde queremos tenerlo instalado y luego descargamos y ejecutamos la instalación

cd /opt
wget -O - http://github.com/dim/retrospectiva/raw/master/script/remote/retrospectiva_installer.rb | ruby

Para asegurarnos que todo salio bien podemos ejecutar un servidor de Retrospectiva y ver que logramos loguearnos

cd retrospectiva
ruby script/server -e production

Luego abrimos un firefox y nos dirigimos a la página http://localhost:3000 y debemos ver una pantalla de login en la cual podremos entrar con el usuario admin y contraseña password

Configuración de Retrospectiva

Ahora que tenemos instalada y funcionando la aplicación, continuamos con la demás configuración que necesitamos, entre ellas configurar las tareas programadas, agregarle soporte de svn y de de scrum

Crontab

Fue suficiente escribir crontab -e para modificar las tareas programadas del usuario actual (como soy root, las de root) y agregar una linea que diga

* *  * * *  RAILS_ENV=production /usr/bin/ruby /opt/retrospectiva/script/retro_tasks

Esto hará que se ejecute el script retro_tasks una vez cada minuto, esta tarea será ejecutada incluso si el ususario no se encuentra logueado. Hay varias otras formas de hacer esto, incluso editando el archivo /etc/crontab pero como esta es la que recomiendan al finalizar la instalación de retrospectiva, y como no tengo motivos para usar alguna otra, es que lo hice de esta manera.

Lamentablemente, al hacer esto comencé a a ver que se generaban errores (crontab envía un email al usuario que lo ejecuta cuando un script genera una salida) y se debía a un modulo llamado FileUtils que es propio de Ruby. Para solucionarlo, decidí modificar el código de retro_tasks y agregué una linea debajo de todos los require que decia

require 'fileutils'

Luego ejecuté manualmente el script con el comando RAILS_ENV=production /usr/bin/ruby /opt/retrospectiva/script/retro_tasks y funcionó correctamente sin generar ningún error, ni esa ni las siguientes veces que lo ejecuté. Luego por curiosidad quité la linea que habia agregado y tampoco generó más errores. Supongo que hizo alguna tarea de inicialización que no se necesitaba más que una vez y no vuelve a ser necesario este mini bugfix.


Soporte para Scrum

Retrospectiva, por default, no trae soporte para Scrum, pero es fácilmente instalable por medio de un plugin llamado agile_pm. Basta ir al directorio donde se encuentra instalado Retrospectiva y ejecutar el siguiente comando

cd /opt/retrospectiva
RAILS_ENV=production script/rxm install agile_pm

Luego solo es necesario reiniciar el servidor de retrospectiva (ya sea apache o WEBrick y disfrutar

Soporte para Subversion

Aquí también las instrucciones son simples y precisas. Basta con ejecutar los siguientes comandos y reiniciar el servidor de retrospectiva.

apt-get install subversion libsvn-ruby

Discussion Area - Leave a Comment