Skip to content

Latest commit

 

History

History
167 lines (95 loc) · 11.2 KB

issues.md

File metadata and controls

167 lines (95 loc) · 11.2 KB

Manejando Issues

(Lectura de 10 minutos)

Los issues (incidencias) son una excelente manera de administrar tareas, mejoras o errores en tus proyectos. Son un poco como un e-mail, pero que podés compartir y discutir con el resto de tu equipo. La mayoría de los proyectos de software tienen algún tipo de bug tracker (administrador de bugs). El de GitHub se llama Issues, y tiene su propia sección en cada repositorio.

Botón de Issues en un repositorio de GitHub

Por ejemplo, miremos la sección de Issues del repositorio de Bootstrap:

Sección de Issues del repositorio de Bootstrap

El issue tracker de GitHub es especial por estar enfocado en la colaboración, las referencias y el excelente formateo de texto. Un issue común en GitHub se ve algo así:

Un issue en GitHub

  • El título y la descripción cuentan de qué trata el issue.
  • Las etiquetas de colores ayudan a categorizar y filtrar los issues (tal como las etiquetas en los e-mails).
  • El milestone (hito) funciona como un contenedor de issues. Sirve para agrupar issues sobre una tarea específica o sobre una etapa del proyecto (por ejemplo, Sprint Semana 34 o Release 1.0).
  • El assignee (designado) es el responsable de trabajar en ese issue en un momento determinado.
  • Los comentarios permiten que quienes tengan acceso al repositorio puedan opinar sobre el issue.

Milestones, Labels y Assignees

Al acumular varios issues, se complica encontrar los que te interesan. Los milestones, labels y assignees te permiten filtrar y categorizar los issues.

Podés cambiar o agregar los milestones, assignees o labels clickeando en sus respectivos íconos de engranaje en la barra lateral de la derecha.

Milestones, labels y assignees

Si no ves los botones de engranajes significa que no tenés permisos para editar el issue. Podés pedirle al owner (dueño) del repositorio que te agregue como colaborador para obtener acceso.

Milestones

Milestones

Los milestones son grupos de issues que corresponden al mismo proyecto, tarea o período de tiempo. Se los suele usar de maneras muy diversas en los proyectos de software. Algunos ejemplos de milestones en GitHub incluyen:

  • Beta Launch - bugs que necesitan ser resueltos antes de poder publicar una versión beta de tu proyecto. Es una buena forma de no olvidarte de nada.
  • Sprint de Octubre - marcá todas las tareas en las que quieras trabajar durante octubre. Útil para enfocarse cuando hay demasiadas cosas para hacer.
  • Rediseño - issues relacionados al rediseño de tu proyecto. Ayuda a juntar ideas sobre qué vas a tener que hacer.

Labels

Las labels son geniales para organizar distintos tipos de issues. Cada issue puede tener tantas labels como gustes, y podés filtrarlos por una o más labels al mismo tiempo.

Labels

Assignees

Cada issue puede tener un assignee - la persona responsable de avanzar con ese issue. Los assignees se seleccionan del mismo modo que los milestones: desde el ícono del engranaje.

Notificaciones, @mentions y referencias

Usando @mentions ("at mentions", menciones) y referencias en tus issues, podés notificar a otros usuarios y equipos de GitHub, y conectar los issues entre sí. Proveen una forma flexible de involucrar efectivaemnte a la gente correcta para resolver los issues, y son fáciles de aprender y usar. Funcionan en todos los campos de texto en GitHub - son parte de la sintaxis de formateo de texto llamado GitHub Flavored Markdown.

Escribiendo GitHub Flavored Markdown en un Issue

Si querés aprender más, podés leer Mastering Markdown.

Notificaciones

Las notificaciones son la forma de mantenerte al día con tus issues en GitHub. Podés usarlas para ver las novedades en los issues de un repositorio, o sólo para enterarte cuando alguien te necesita para avanzar un issue.

Hay dos formas de recibir notificaciones: por e-mail, y por la web. Podés configurar cómo recibir tus notificaciones en tus preferencias. Si esperás recibir muchas notificaciones, te recomendamos recibir notificaciones en la web + e-mail para Participating (issues en que participás), y sólo web para Watching (issues que estás siguiendo).

Configurando notificaciones

Con estas preferencias, recibís e-mails cuando la gente te menciona directamente, y podés entrar en la web para ponerte al día con los repositorios que te interesan.

Podés acceder a tus notificaciones a través de la página de notificaciones. Esta página está pensada para ojear varias notifiaciones a la vez y marcarlas como leídas o silenciarlas. Probá de usar los atajos de teclado para acelerar tu trabajo acá - apretá ? estando en la página para ver qué atajos tenés disponibles.

Notificaciones

Los threads silenciados (muted) no van a volver a aparecerte mientras nadie te @mencione directamente. Es una buena estrategia para los threads en los que no estás muy interesado (quizá un sub-sistema del proyecto en el que no tenés mucho que ver). Si marcás un issue como leído, se va a mantener así hasta que alguien comente nuevamente en él.

GitHub también sincroniza el estado de leído/no leído a través de las notificaciones por e-mail - si leés una notificación en tu cliente de mail, va a marcarse como leído en la interfaz web (asegurate de habilitar las imágenes en tu cliente de mail para poder usar esta funcionalidad).

@mentions

Las @mentions son la forma de referenciar a otros usuarios de GitHub dentro de los issues. Tanto en la descripción del issue como en cualquier comentario, escribí @nombredeusuario de otro usuario de GitHub para mandarle una notificación. Funciona bastante similar a como Twitter usa las @mentions.

Se suele usar la sintaxis /cc (abreviación de "carbon copy", copia en carbónico) para incluir gente en los issues:

Parece que el nuevo widget de formulario está roto en Safari. Cuando lo pruebo y creo el widget, Safari crashea. Puedo reproducirlo en 10.8, pero no en 10.9. ¿Será un bug del browser?

/cc @kneath @jresig

Esto está bueno para cuando sabés a qué usuarios específicos incluir, pero a veces estás trabajando entre equipos y no sabés muy bien quién va a poder ayudarte. Las @mentions también funcionan para los equipos en tu organización de GitHub. Si creás un equipo llamado browser-bugs en la organización @acmeinc, podés referenciar al equipo usando una @mention:

/cc @acmeinc/browser-bugs

Esto va a enviarle notificaciones a cada miembro de ese equipo.

Referencias

A menudo los issues dependen de otros issues, o al menos se relacionan de algún modo, y querés establecer alguna conexión entre ambos. Podés referenciar issues tipeando un numeral (#) seguido del número de issue.

Hey, @kneath, creo que el problema comenzó en #42

Cuando hagas esto, se va a crear un evento en el issue #42 que se ve algo así:

Referencias en issues

¿Y para issues de otros repositorios? Simplemente incluí antes el nombre del repo, como en kneath/example-project#42.

Uno de los usos más interesantes de GitHub Issues es poder referenciar issues directamente desde los commits. Incluí el número de issue dentro del mensaje de un commit.

Referenciando issues desde un commit

Prefijando tus commits con "Fixes", "Fixed" o "Fix" ("arregla"), "Closes", "Closed" o "Close" ("cierra") vas a cerrar automáticamente el issue al mergear ese commit a master.

Las referencias permiten conectar el trabajo hecho con el bug que está tratando de resolver, y son geniales para dar más visibilidad a la historia de tu proyecto.

Búsqueda

En la parte superior de cada página hay una caja de búsqueda que te permite buscar en los issues.

Buscando Issues

Podés acotar las búsquedas por:

El artículo de ayuda sobre búsqueda de issues muestra otras formas de buscara: usando las fechas de creación/actualización, labels, autores, cantidad de comentarios, dueño del repositorio y más.

Información y reportes

Fuera de la sección de issues hay dos otras páginas que te ayudan a resumir qué está pasando con los issues de un repositorio, y de todos tus repositorios en general.

El dashboard de issues

Si estás buscando un listado más amplio de todos tus issues en distintos proyectos, el dashboard de issues puede serte muy útil. El dashboard funciona parecido a la sección de issues, pero los agrupa de diferentes maneras:

  • Todos los issues de los repositorios tuyos y en los que sos colaborador
  • Los issues asignados a varios
  • Los issues que creaste

Si usás organizaciones, cada una tiene su propio dashboard que sólo muestra los issues de esa organización.

Pulse

Abajo de todo, cada repositorio tiene una sección llamada Pulse (pulso) - un resumen de todo lo que pasó en ese repositorio la última semana (o el último día, o los últimos 3 meses, etc).

Pulse

Es bastante útil para ponerte al día con repositorios que tuviste abandonados durante algún tiempo y que no querés la granularidad de leer cada notificación.

Otros usos para Issues

Los issues son útiles para hacer seguimiento de todo tipo de cosas, y GitHub es un gran lugar para colaborar y compartir fácilmente tus issues. Acá hay algunos de nuestros favoritos:

Fin

Felicitaciones, ¡fue bastante para leer! La administración de issues es una de las herramientas más poderosas que tienen los desarrolladores. Supongo que todo lo que queda ahora es ponerse a efectivamente resolver esos issues.