Colaborar en proyectos de Launchpad

Registrarse en Launchpad

Para registrarse en Launchpad hay que acudir a su web:

https://launchpad.net/

y hacer clic en la parte superior derecha, donde pone “Register”. Automáticamente se muestra un formulario, donde que hay que hacer clic en “Crear una cuenta nueva” (omitir este paso si ya se tiene cuenta en Launchpad).

En el formulario de registro habrá que indicar un nombre de usuario, muy importante ya que será parte del nombre de nuestras ramas de código, y una dirección de correo a la que nos llegarán las notificaciones.

Vincular nuestros sistemas a nuestra cuenta en launchpad

Para poder utilizar desde nuestro sistema el usuario creado en Launchpad hay que vincular el sistema con la cuenta, para esto se utilzan las claves ssh. Con el siguiente proceso crearemos una clave publica y una privada en nuestro sistema. En Launchpad se guardará la clave pública, y cuando nuestro sistema necesite acceder a nuestra cuenta en Launchpad consultará si coincide la información de la clave publica con nuestra clave privada para ver si nuestro sistema tiene o no permisos para acceder a la cuenta.

Para generar las claves ssh, en un sistema con Ubuntu/Mint o basado en Debian:

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

Este proceso crea en /home/usuario/.ssh las claves, id_rsa la clave privada y id_rsa.pub la clave pública.

Ahora en la cuenta creada de Launchpad se debe indicar cual es la clave pública, haciendo clic en “SSH Keys” y copiando el contenido de /home/usuario/.ssh/id_rsa.pub

Descargar el código con Bazaar

Bazaar es el sistema de control de versiones con el que trabajan los proyectos alojados en Launchpad. Para instalarlo en un sistema Ubuntu/Mint  o basado en Debian se ejecuta el siguiente comando:

apt-get install bzr

Para indicar en nuestro sistema con que usuario de launchpad vamos a trabajar ejecutamos

bzr login nombre_usuario_launchpad

este comando sólo es necesario ejecutarlo una vez, cuando se instala bzr. Si siempre se trabaja con el mismo usuario no es necesario volver a hacer ‘Login’ en el mismo sistema.

Para descargar el código del proyecto utilizaremos el comando “bzr branch lp:proyecto/version”, que crea una rama para trabajar en local con la copia de la versión del proyecto indicado, por ejemplo:

bzr branch lp:openerp-spain/6.0

Opcionalmente se puede añadir un parámetro para indicar en que directorio se quiere guardar la rama, si no utilizara lo que haya después del último “/”, en el caso anterior lo almacenaría en el directorio “6.0”.

Añadir código en nuestra rama local

Una vez se han realizado los cambios necesarios en el código local que tenemos del proyecto hay que indicar esos cambios en el control de versiones. Las siguientes operaciones se realizarán desde dentro de la carpeta que hemos descargado, en el ejemplo anterior en “6.0”.

Si hemos creado nuevos ficheros hay que añadirlos al control de versiones, esto lo se hace con:

bzr add *

se utiliza * para añadir todos los ficheros, aunque es posible indicar los ficheros de forma individual.

Tanto si se han añadido ficheros al control de versiones como si no, cuando el código se ha modificado, habrá que indicarlo realizando un “commit” indicando que modificación se ha realizado:

bzr commit -m “mensaje”

El mensaje es aconsejable que tenga el siguiente formato “[TAG] descripción”. La etiqueta [TAG] por convenio se utilizan las siguientes opciones:

  • [IMP]: Mejoras
  • [FIX]: Corrección de errores
  • [REF]: Refactorizar, modificar el código sin cambiar la funcionalidad
  • [ADD]: Añadir fuentes
  • [REM]: Eliminar fuentes

Subir cambios al proyecto (con permisos en el proyecto)

Si el usuario con el que trabajamos tiene permisos en el proyecto actual, se pueden subir directamente estos cambios al proyecto. Esta opción sólo es recomendable para los usuarios con experiencia y responsables del código del proyecto.

Siguiendo con el ejemplo anterior, para subir el código a lp:openerp-spain/6.0 se puede hacer con el siguiente comando:

bzr push lp:openerp-spain/6.0

Subir los cambios a una rama de nuestro usuario y proponer un merge con la rama original (no es necesario permisos en el proyecto)

Si el usuario no tiene permisos en el proyecto para el que pretende subir el código, o si se quiere que otros miembros del proyecto revisen el nuevo código, es posible subir el código a una rama del usuario creado y proponer un merge con la rama original. De esta forma el resto de miembros del proyecto podrán descargar el código de dicha rama para comprobar su funcionamiento, y una vez validado, añadirlo al proyecto principal.

Para subir el código a una rama propia del usuario creado, siguiendo con el ejemplo anterior y suponiendo que el nombre de usuario en Launchpad es “nombre_usuario_launchpad” se puede crear la rama para dicho usuario con el siguiente comando:

bzr push lp:~nombre_usuario_launchpad/openerp-spain/6.0

Ahora es posible ver la web de esta rama en:

https://code.launchpad.net/~nombre_usuario_launchpad/openerp-spain/6.0

Y para indicar que se quiere hacer un «merge» (fusión) con el proyecto principal, en esta web, en “Branch merges” se hace clic sobre “Propose for merging” y se completa la información sobre el «merge».

Una vez propuesto el «merge», los usuarios miembros del proyecto podrán probar tu código y añadirlo al proyecto al validar el «merge».