Herramientas y servicios de comunicación en el desarrollo.

Sistema de control de versiones.

En los siguientes párrafos, se introducirá brevemente el uso del CVS. Para una explicación más completa y detallada, se recomienda la visita de LuCAS, donde existe un interesante manual de introducción al CVS.

El uso de CVS es muy sencillo a la vez que potente. Para empezar, no hay más que definir la variable CVSROOT con el valor del repositorio que se va a usar. El repositorio CVS está situado en el servidor y es como el almacén donde se guardan los ficheros y sus sucesivos cambios. Este repositorio tiene dentro del servidor CVS una localización física, que se traduce en un directorio. En el caso del repositorio CVS de GNOME Hispano, habría que introducir la siguiente instrucción en el terminal:

export
	  CVSROOT=:pserver:usuario@cvs.es.gnome.org:/home/cvs/gnome
      

Donde usuario es el nombre de usuario que asignado. En el CVS de GNOME Hispano, existe un usuario llamado anoncvs que puede usar todo el mundo con permisos de lectura para tener acceso a todos los fuentes de nuestros proyectos.

Se puede observar que CVSROOT necesita saber el tipo de conexión (psever viene de persistent server), el nombre de usuario, la localización de la máquina donde está el servidor CVS (en el caso de GNOME Hispano se encuentra en cvs.es.gnome.org) y finalmente la localización dentro de esa máquina del repositorio CVS.

La opción pserver implica que sólo hará falta autentificarse una sola vez y que se guardarán los parámetros de conexión de manera indefinida en el ordenador local. En caso contrario, cada vez que se interactue con el servidor CVS, será preciso introducir la contraseña.

Como en este caso se ha elegido la opción de una conexión persistente, habrá que autentificarse con la siguiente instrucción:

	cvs -z3 login
      

A continuación, se pedirá la clave de acceso que, en el caso del usuario anoncvs es, efectivamente, anoncvs.

Seguidamente, se obtendría una copia de los módulos en los que se esté interesado. Normalmente cada proyecto tiene su propio módulo, que es implementado en el CVS como un subdirectorio. Para ello, se usa la instrucción checkout:

	cvs -z3 checkout módulo
      

Ésto crea el subdirectorio módulo en el directorio actual con la última versión de los ficheros que existían en ese módulo. Una vez se tiene una copia local, no hará falta hacer más veces checkout (que podría traducirse como "extracción"). Para actualizar una copia ya existente, se usará el comando update

	cvs -z3 update
      

en el directorio que se quiere actualizar.

Y finalmente, para ver las diferencias que existen entre la copia local y el repositorio CVS (muy útil si se quiere seguir el desarrollo de un proyecto paso a paso o enviar parches a los desarrolladores), se usará el comando diff. La salida por pantalla de este comando suele ser bastante extensa, así que es buena idea redirigirla a un fichero o mostrarla paginada mediante las instrucciones more y less.

Si se tiene permiso de escritura en el repositorio, para lo cual habrá que tener una cuenta con acceso de escritura (situación que no se da con anoncvs), se podrán no sólo bajarse ficheros, sino también añadir ficheros y directorios mediante add:

	cvs -z3 add [fichero | escritorio]
	

Cuando se añade un directorio, éste se actualiza directamente en el repositorio, pero cuando es un fichero, es necesario un segundo paso: el comando commit, para que el fichero sea creado en el repositorio.

	cvs -z3 commit
	
      

Análogamente, para borrar ficheros y directorios, se usa el comando remove. Pero, antes de hacer esto, es necesario eliminar el fichero o el directorio de la copia local, pues si no, CVS no llevará a cabo el borrado del archivo.

Y, como ya se ha indicado, el comando commit de CVS es el que se usa para introducir los cambios que se hayan hecho en la copia local del repositorio.

En resumen, se puede ver que el uso común de CVS se suele limitar a los siguientes pasos: exportar la variable de shell CVSROOT y autentificase en el sistema; a continuación, se extrae una copia local con la última versión de los ficheros mediante la instrucción checkout. Esta secuencia, como se ha comentado ya, es única y se hace la primera vez.

Si se edita un fichero que ya existe en el repositorio, a continuación lo único que habrá que hacer es ejecutar la instrucción commit para que el servidor sincronice su versión con los cambios realizados. Si este fichero que se ha editado es nuevo y, por tanto, no está en el repositorio del servidor, habrá que añadirlo mediante la instrucción add y posteriormente sincronizar el repositorio con la instrucción commit. Este último proceso es el que se repite una y otra vez al desarrollar, así que esperemos que haya quedado claro y el lector haya perdido el miedo a usar el sistema de control de versiones CVS, porque es realmente simple y potente.

Para concluir, sólo hay que comentar que el sistema CVS ofrece muchísimas más posibilidades de las que han sido mostradas aquí. Estas instrucciones son las básicas y con las que cualquiera puede a ponerse a trabajar inmediatamente. La profundización en otras instrucciones, menos frecuentemente usadas, del CVS corre a cargo del lector.

Bugzilla

Bugzilla no es más que una base de datos que sirve para que el usuario reporte todos los bugs o errores que encuentreen su GNOME. Reportar errores es una tarea más valiosa de lo que parece porque, gracias a estos informes de errores, cada vez se puede disfrutar de un GNOME mejor. Además, es una tarea muy sencilla.

Para reportar errores lo primero que hay que hacer es crear una cuenta en el Bugzilla de GNOME con una dirección de correo válida. Hace poco se creó un estupendísimo asistente muy detallado para hacer más fácil el envío de errores. Basta con seleccionar la aplicación en la que encontremos el error y seguir las instrucciones. Como ya comentamos anteriormente, es una tarea muy sencilla y de inmenso valor que todo usuario puede hacer. ¡Hagamos entre todos un GNOME libre de fallos!

Listas de correo.

Las listas de correo forman una parte muy importante dentro de GNOME. Estas listas sirven para discutir sobre las distintas partes de GNOME, problemas a la hora de programar o simplemente anunciar la nueva versión del programa que se esté desarrollando. Hay listas para todo y para todos.Aquí están todas las listas de correo disponibles.

Internet Relay Chat (IRC).

Tanto si somos desarrolladores como usuarios de GNOME, el IRC nos puede ser de gran ayuda. GNOME dispone de una red propia de IRC (irc.gnome.org) y de canales para charlar.

Para acceder al IRC, el usuario necesitará un cliente. Recomendamos al lector que se descargue el X-Chat.