Publica tu how-to

Dinos como hacer lo que sabes hacer, mándanos un email a wdonet@gmail.com y lo publicamos (dos días máximo) o si te interesa unirte al equipo de redactores, también háznoslo saber por correo.

Instalar Trac para administrar proyectos

Administrar proyectos es parte que llega a volverse esencial cuando se  trata con proyectos que crecen poco a poco, como es el caso de los proyectos open source. Existe software hecho justamente para facilitar la administración de proyectos de software. En esta ocasión, vamos a hablar sobre Trac, un software hecho en Python con interfaz web para permitir la administración de proyectos.

Trac incluye:
  • un wiki para que el proyecto tenga su propio sitio en linea, y wiki es aun mejor si es un proyecto open source, para que los usuarios y desarrolladores puedan contar con la información más actualizada, de primera mano de parte de los mismos usuarios y desarrolladores
  • un administrador de issues o tickets para permitir estar al tanto de los bugs y sus correcciones, así como las mejoras hechas al software
  • conexión con el repositorio del código fuente del proyecto. Por defecto, Trac se conecta con repositorios SVN, pero permite también otros
  • utiliza una base de datos, ya sea SQLite, PostgreSQL o MySQL
  • otras características más, propias de un administrador de proyectos y que resultan útiles en ciertos momentos


Instalación rápida
Este modo de instalación requiere de Python (versiones 2.3 a 2.6) así como easy_install:
easy_install Trac
El cual instala Trac con SQLite y Genshi como framework de vista.


Requerimientos previos
Si se hace una instalación rápida, se instalaría Trac utilizando SQLite. En cuanto a este tipo de instalación, sólo es necesario tener instalado Python (versiones 2.3 a 2.6, la versión 3 aún no es soportada) y easy_install

Si se prefiere utilizar otro manejador de base de datos, entonces también es necesario tener los paquetes adecuados y los módulos para conectarse a los mismos con Python.

Igualmente, si se desea instalar el soporte con un repositorio SVN, es necesario tener instalado Subversion, así como los bindings SWIG para Python (ojo! PySVN no funciona para Trac).

Para publicar Trac en web, se necesita un servidor web. Puede ser cualquier servidor que soporte ya sea CGI, FastCGI o AJP, o en  todo caso, Apache con el módulo mod_swgi o con mod_python (esta última es la opción con la que yo lo he llegado a instalar).



Instalación
Utilizando las setuptools, la instalación es sencilla:
easy_install http://svn.edgewall.org/repos/trac/tags/trac-0.11
Aunque también se puede hacer desde el directorio superior del código fuente:
python ./setup.py install
 
 
Configuración
Una vez instalado, hay que configurar dos cosas: el directorio en donde se almacenará la información del proyecto que se desea administrar, y el servidor web.

Para comenzar, se debe dar de alta el proyecto en donde quedará almacenado el sitio con la información del proyecto:
trac-admin /path/al/proyecto initenv
trac-admin pedirá información para inicializar el proyecto, como el path hacia el repositorio SVN (el cual es el tipo de repositorio por defecto), la conexión a la base de datos para usar (por defecto utiliza una base de datos con SQLite).


Para probar el repositorio, se puede levantar provisionalmente un servidor web integrado para ver que todo funcione correctamente:
tracd --port 8000 /path/to/myproject
Con lo que, accediendo en el navegador a http://localhost:8000/ se puede ir hacia todos los proyectos administrados por trac.




Configurando el servidor web
Trac se puede configurar para funcionar en modo CGI, mod_python de Apache, o FastCGI, e incluso en forma experimental en mod_wsgi de Apache. A continuación explico la forma de configurar con mod_python, que es la forma en que yo lo levanté en mi servidor...
1. Para empezar se debe asegurar que mod_python esté instalado en Apache. Una vez instalado, debe asegurarse de que Apache cargue el módulo mod_python al arrancar (cambiar el path a mod_python.so dependiendo la configuración de cada máquina):
LoadModule python_module modules/mod_python.so
Una forma de probar que mod_python esté correctamente configurado es agregar lo siguiente a la configuración de Apache (y que debe borrarse una vez hecha la prueba... es como el phpinfo() de PHP):
< Location /mpinfo >
   SetHandler mod_python
   PythonInterpreter main_interpreter
   PythonHandler mod_python.testhandler
< / Location >
Y acceder a http://localhost/mpinfo
2. La configuración básica de Apache para utilizar trac con mod_python es (cambiando la ubicación del proyecto trac y la url deseada según la máquina):
< Location /projects/myproject >
   SetHandler mod_python
   PythonInterpreter main_interpreter
   PythonHandler trac.web.modpython_frontend 
   PythonOption TracEnv /var/trac/myproject
   PythonOption TracUriRoot /projects/myproject
< / Location >
La opción TracUriRoot puede o no ser necesaria, deberá probarse con o sin ella...
Otras opciones:
    # Un solo proyecto
    PythonOption TracEnv /var/trac/myproject
    # Varios proyectos
    PythonOption TracEnvParentDir /var/trac/myprojects
    # Para un indice de multiples proyectos
    PythonOption TracEnvIndexTemplate /srv/www/htdocs/trac/project_list_template.html
    # Para obtener la fecha en el orden deseado
    PythonOption TracLocale en_GB.UTF8
Los eggs de Python (como los de Genshi) normalmente se descomprimen en un directorio en el cual Apache no puede escribir, esta opción se puede usar para apuntar a un directorio en el que Apache sí pueda escribir:
PythonOption PYTHON_EGG_CACHE /var/trac/myprojects/egg-cache
3. La autenticación es necesaria para configurar el acceso al area de administración de trac. En Apache:
< Location /projects/myproject/login >
  AuthType Basic
  AuthName "myproject"
  AuthUserFile /var/trac/myproject/.htpasswd
  Require valid-user
< / Location >
4. Más opciones, se pueden ver en http://trac.edgewall.org/wiki/TracModPython


Más configuraciones
Otras opciones y configuraciones se pueden configurar en trac.ini, el archivo de configuración que se encuentra en el directorio conf del proyecto. Por ejemplo, se puede definir un logotipo para el proyecto, entre otras cosas.

El resto consiste en utilizar trac para poder administrar los proyectos: editando el wiki, utilizando el administrador de issues, etc.

Toda esta información se encuentra de hecho en el sitio oficial del proyecto trac: http://trac.edgewall.org/wiki/TracInstall


No hay comentarios:

Publicar un comentario

Que opinas sobre esta publicación?