La semana pasada estuve en Bilbao en las jordanas estatales de OpenERP y me quede impresionado con el funcionamiento de la comunidad. Como hace tiempo que estoy dándole vueltas a la documentación y pensando en traducirla he decidido que lo primero con lo que voy a empezar a colaborar es con la traducción de la documentación. Las herramientas necesarias para colaborar con OpenERP son Launchpad y Bazaar, vamos a ver que son y como se utilizan si queremos descargar código (en este caso será el código de la documentación), modificarlo y volverlo a subir para que este disponible para la comunidad.
Según la wikipedia «Launchpad es una aplicación web y un sitio web que apoya el desarrollo de software, en particular el de software libre. Está desarrollada y mantenida por Canonical Ltd..», puedes ver el articulo completo aqui. Launchpad da soporte para compartir código y controlar versiones, reportar errores (Bugs), sugerir modificaciones y nuevas funcionalidades (blueprints), crear traducciones y para dar respuestas a preguntas de la comunidad. La herramienta que permite compartir el código y controlar versiones es Bazaar, luego veremos como funciona.
Para poder colaborar en cualquier proyecto alojado en Launchpad tendremos que registrarnos en la web de Launchpad. Una vez tengas tu cuenta en launchpad puedes unirte al grupo openerp-community. No es necesario unirse a ningún grupo para descargarte el código, pero si para subir modificaciones.
Bazaar es la herramienta que permite descargar el código y controlar las versiones a la hora de subirlo. Puedes ver mas en Bazaar en cinco minutos. Para instalar bazaar en ubuntu 9.10 hacer lo siguiente:
Dependiendo de la versión necesaria para usar bzr es conveniente instalarlo desde su repositorio
echo 'deb http://ppa.launchpad.net/bzr/ubuntu karmic main' | sudo tee -a /etc/apt/sources.list
apt-get update
Una vez añadido al repositorio se puede instalar asi
apt-get install bzr
para instalarlo en otra versión de ubuntu simplemente cambia el nombre de la versión al añadir los repositorios, y para otro sistema operativo puedes ver la guía aquí.
La idea es la siguiente, el código compartido en bazaar se organiza en ramas o branches, por ejemplo el proyecto openerp-server tiene una rama llamada trunk para el código en desarrollo, y una rama 5.0 para la versión estable. Así que si queremos descargarnos la versión estable de openerp-server podemos hacer:
bzr brach lp:openobject-server/5.0
y para descargarnos el código de la documentación:
bzr branch lp:openobject-doc
con esto se nos crea un directorio llamado openobject-doc que contendrá el código de la documentación. En el próximo post explicare la estructura del código de la documentación y como se crean las traducciones.
Bazaar es una herramienta distribuida de control de versiones así que lo que hemos hecho realmente al descargar el código es crear una rama en nuestro repositorio local, si modificamos el código antes de subirlo tendremos que sincronizar nuestra rama con la original, obtendremos los cambios realizados desde que descargamos el código o desde la última revisión que hicimos y lo sincronizaremos con nuestra rama local.
Para poder publicar nuestro código con Bazaar primero tendremos que identificarnos, por un lado nos identificaremos con nuestro usuario de Launchpad:
bzr launchpad-login nombre_usuario_launchpad
la primera vez que lo ejecutemos se creara el fichero /home/angelmoya/.bazaar/authentication.conf con la información de nuestro usuario.
Por otro lado tenemos que identificar nuestro equipo con la clave ssh key, para conseguir nuestra clave ssh key en ubuntu lo haremos así:
#Instala OpenSSH
sudo apt-get install openssh-client
#Genera la clave
ssh-keygen -t rsa
# - Presiona intro para aceptar el nombre por defecto
# - Introduce la contraseña
Con esto se genera en el directorio /home/usuario/.ssh/ una pareja de claves, id_rsa la clave privada y id_rsa.pub la clave publica. La clave privada se quedara en tu equipo y la publica hay que subirla a tu perfil de launchpad. Logeate en Launchpad.net con tu usuario y accede a tu página para editar la información de SSH keys.
Copia en esa ventana la información que hay dentro del fichero /home/usuario/.ssh/id_rsa.pub y clicka el botón Import Public Key para terminar.
Con esto ya tienes tu equipo preparado para subir modificaciones del código. Si te has descargado el código del proyecto openobject-doc y has realizado alguna modificación, ve al directorio de openobject-doc y haz lo siguiente:
Sincronizamos nuestros cambios con los que se han realizado en openobject-doc desde la ultima sincronización
bzr merge
Hacemos un commit para indicar los cambios que hemos realizado
bzr ci -m "[TAG] Mensaje explicando cambios hechos"
Por último subimos los cambios
bzr push
Para mas información puedes consultar aquí.
Por último, cuando realices el commit, según se indica la documentación de Open ERP aquí sobre como subir tus modificaciones, en el mensaje hay que indicar que tipo de modificación has realizado, esto se indica con el [TAG] las diferentes opciones son:
- [IMP]: Mejoras
- [FIX]: Corrección de errores
- [REF]: Refactorizar, modificar el código sin cambiar la funcionalidad
- [ADD]: Añadir fuentes
- [REM]: Eliminar fuentes
Con esto ya hemos visto como trabajar con Launchpad y Bazaar, en el siguiente post veremos como trabajar en la traducción.
Pingback: Launchpad y Bazaar para colaborar con OpenERP | - ERP OpenERP / Servicios / Consultoría / Implantación
Muchas gracias por ayudarnos a entender como colaborar con el proyecto OpenERP.
Mencionaré este articulo en mi blog http://principiantedelinux.wordpress.com/.
Clap Clap Clap 🙂
Pingback: Como puedo ayudar o colaborar con OpenERP « Principiante de LINUX
De nada, me alegra ver que lo que escribo le sirve de ayuda a alguien.
Hola Angel
Gracias por tus comentarios. Me queda, pero, una duda.
Al descargar el contenido de una rama para la que tenemos distintas subramas (versiones), sin indicar la versión, ¿qué es lo que estamos descargando?
Es decir, esta claro que la siguiente instrucción descarga la versión 5.0 del servidor:
bzr branch lp:openobject-server/5.0
Y la siguiente instrucción, la versión 6.0:
bzr branch lp:openobject-server/6.0
Entonces, ¿qué descargamos con la instrucción siguiente?
bzr branch lp:openobject-server
Muchas gracias por tu blog.
Hola, la versión que se descarga depende de cada proyecto, en el caso de openerp-server si miras en https://code.launchpad.net/openobject-server la serie actual es trunk, la versión en desarrollo. En el caso de https://code.launchpad.net/openerp-spain, no lo hemos actualizado y es la versión 5.0. Si accedes a los links se ve mas claro lo que digo.
Pingback: Ubuntu 10.04 + OpenERP 6.1 + Nginx + SSL + SVN (I) « OpenERP Memento