Review Board


[tweetmeme source=”joeljil” only_single=false]
Debido a que actualmente estoy trabajando en un proyecto en la Universidad que involucra trabajo colaborativo y métodos de revisión de código fue que descubrí Review Board. Lamentablemente a la hora de empezar a buscar me di cuenta que en español la documentación sobre este es casi nula, así que hoy me animé a escribir este post para contribuir un poco a la comunidad y difundir su uso. 🙂

Introducción

Review Board es una poderosa herramienta web de código abierto que ofrece a los desarrolladores una forma sencilla de gestionar las revisiones de código, documentación y otros archivos de texto. Se ajusta bien a pequeños y grandes proyectos de desarrollo ofreciendo una variedad de herramientas que ayudan a disminuir el estrés y el tiempo dedicado a esta labor.

Las revisiones de código desde hace tiempo que han sido una tarea lenta. Esto se debe principalmente a la falta de herramientas de calidad disponibles. Debido a esto, los desarrolladores deben recurrir al correo electrónico y sistemas de seguimiento de errores. Sin embargo, una cantidad considerable de tiempo y energía es gastada al realizar las revisiones de esta manera.

Así, en un esfuerzo de ayudar a mejorar este proceso, se desarrolló “Review Board” como una opción que llena los vacíos existentes en el ámbito de la revisión de código.

Definición de conceptos

Estos conceptos son importantes para comprender el potencial y funcionamiento de Review Board.

code review:

En español “revisión de código”, es el proceso de hacer disponible ciertos fragmentos de código fuente a otros desarrolladores con el fin de una revisión.

Las revisiones de código pueden mejorar drásticamente la calidad del software. Ya que facilitan el descubrimiento temprano de errores de diseño y fallos permitiendo así evitar muchos problemas.

diff:

Es una utilidad para la comparación de archivos que genera las diferencias entre dos archivos o los cambios realizados en un archivo determinado comparándolo con una versión anterior del mismo archivo. El resultado se conoce como diff o patch ya que el mismo puede ser aplicado con el programa Unix patch. Como ejemplo aplicado a Review Board pensemos en un archivo [X.algo] el cual está en nuestro servidor . Pensemos ahora que modificamos ese archivo de manera local con lo que obtenemos un archivo [X.algo*], entonces de estos dos archivos obtenemos un diff que sería [ X.algo.patch ], este archivo contiene las modificaciones o diferencias entre las dos versiones del mismo archivo.

+ info: http://docs.kde.org/stable/es/kdesdk/kompare/working-with-diff-files.html

review requests:

En español “Solicitud de Revisión”, es una solicitud levantada por el desarrollador para la revisión de un archivo. Esta solicitud consiste en, como mínimo, un Diff, una descripción, y uno o mas revisores.

reviewer:

En español “crítico”, es el encargado de revisar los review requests. El proceso de revisión se lleva a cabo mediante anotaciones sobre el diff.

diff viewer:

Es el visor de diff, este permite visualizar de manera clara los diff mediante una pantalla compartida en la cual se presenta la version por lado del repositorio y la version candidata local.

Características Generales

  • Se integra con varios sistemas de control de versiones: Bazaar, ClearCase, CVS, Git, Mercurial, Perforce, y Subversion. Además puede ser extendido para soportar otros repositorios.
  • Cada usuario tiene un dashboard o Panel desde donde puede ver sus review requests.Dashboard
  • Toda la información de un cambio esta disponible rápidamente. Los autores pueden modificar la información de manera rápida y fácil a través de la interfaz web. Se puede agregar capturas de pantallas y comentarios para apoyar la revisión.Detailed review requests
  • Tiene un poderoso diff viewer con highlight syntax. Powerful diff viewer
  • Nos ofrece un completo historial de todas las revisiones.
  • Desde el diff viewer el reviewer puede dejar comentarios directamente sobre el código. Sobre una línea o varias seleccionándolas haciendo drag and drop.Inline commenting in diffs
  • Nos provee de command-line tools que nos permiten crear y actualizar rápidamente review requests. Acelerando así el ciclo de code reviews.
  • Pueden integrarse aplicaciones third-party como IDEs u otras herramientas fácilmente gracias a las APIs XML/JSON de Review Board.

Funcionamiento

Para entender el funcionamiento vamos a suponer el siguiente escenario: Tenemos un equipo de desarrolladores trabajando en un proyecto, el proyecto es alojado y controlado en un repositorio (control de versiones) en algún servidor. Cada desarrollador sube periódicamente sus avances a este repositorio, pero antes de realizar esto emite un review requests para que su avance (o corrección) sea revisado y aprobado por los reviewer.

Code Review

En Review Board hay dos tipos de reviews.

  • Pre-commit review
    Se revisa el código antes de subirlo (commit). En este metodo se sube un diff (review request) y después pasa a ser comentado y revisado por los pares (reviewer).
  • Post-commit review
    El código es revisado después de ser subido. El código ya se encuentra en el server.

Review Board soporta “Pre-commit review” en la interfaz web. Para usar “Post-commit review” se necesita la herramienta “post-review”, la cual es mediante lineas de comandos.

Flujo de trabajo en Pre-commit review

  1. Realizar cambios de manera local.
  2. Crear un “review request”.
  3. Publicar el “review request” y esperar los “reviewer” lo vean.
  4. Esperar las revisiones de los “reviewer”.
  5. Si los reviewer aprueban el “review request”
    • Subir los cambios al repositorio (commit).
    • Cerrar el “review request”.
  6. Si los reviewer solicitan cambios
    • Actualizar el código local y generar un nuevo diff.
    • Subir nuevo diff y especificar los cambios en la descripción  y publicar.
    • Volver al paso 4.

Mas Información

Web: http://www.reviewboard.org/
Demo: http://demo.reviewboard.org/
Instalación: http://www.reviewboard.org/docs/manual/1.0/admin/
Documentación: http://www.reviewboard.org/docs/manual/1.0/

Notas

Bueno, con este post ya se tiene una mirada general sobre Review Board que espero sea de utilidad. Durante las próximas semanas subiré una guía de instalación y configuración en español. 🙂

ACTUALIZACIÓN: Lo prometido es deuda, aquí les dejo la guía de instalación 🙂 https://joeljil.wordpress.com/2010/07/07/review-board-instalacion/

Anuncios

Acerca de Joel

Ingeniero Civil Informático y Emprendedor.
Esta entrada fue publicada en Programación y etiquetada , , , , . Guarda el enlace permanente.

3 respuestas a Review Board

  1. Pingback: Review Board | Instalación | Ubuntu 10.04 | El Blog del Joel

  2. Pingback: Review Board: Gestionar revisiones de código, documentación … | Ubuntizados

  3. Fernando dijo:

    Hola Joel , tengo que hacer unas modificaciones en el review Board para mi empresa
    he instalado Eclipse + python + Django ( En linux).. pero a la hora de compilar me aparece
    un error :

    Unable to import settings_local.py: No module named settings_local

    Please see http://www.reviewboard.org/docs/manual/dev/admin/
    for help setting up Review Board.
    Estoy tratando de entender cual es el problema , si pudieras echarme una mano te lo agradeceria.

    Saludos Fernando Martin

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s