Salta el contingut
 

Eines de gestió de projectes a GitHub

Joan Puigcerver Ibáñez

j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Eines de gestió de projectes a GitHub

Els serveis d'allotjament de repositoris en línia, com GitHub o GitLab, ofereixen una sèrie d'eines i funcionalitats que permeten gestionar projectes de desenvolupament de programari col·laboratiu de manera fàcil i eficaç.

En aquests apunts ens centrarem en la part de gestió de projectes, com crear debats, comunicar incidències i organitzar tasques.

Debats

Els debats o Discussions és un espai de comunicació on els membres d'un projecte o els membres d'una comunitat poden intercanviar idees, opinions, realitzar suggeriments o debatre sobre temes concrets.

Aquesta funcionalitat no està habilitada per defecte. Per activar-la, cal anar al menú de configuració del repositori Settings i habilitar-la.

Configuració de les Discussions en un repositori de GitHub

Figura 1. Configuració de les Discussions en un repositori de GitHub

Debats a aquest repositori

Aquest lloc web està allotjat a GitHub i s'ha habilitat la funcionalitat de debats.

Podeu accedir mitjançant la secció Discussions del menú superior o en aquest enllaç.

Exemple de debat en un repositori de GitHub

Figura 2. Debats en en repositori d'aquest curs a GitHub

Debats a Material for MkDocs

Material for MkDocs és tema per al generador de llocs web estàtics MkDocs utilitzat per a generar aquest lloc web.

El codi font d'aquest tema està allotjat en seu repositori a GitHub{ on s'han habilitat els debats i la comunitat pot intercanviar idees, suggeriments o plantejar dubtes.

Debats a Material for MkDocs

Figura 3. Debats en el repositori mkdocs-material a GitHub

Els debats estan organitzats per categories, que permeten classificar-los per temes i facilitar-ne la cerca. També es poden afegir noves categories o eliminar les existents.

Les categories per defecte són les següents:

  • 📣 Announcements: per a anuncis oficials. Sols els propietaris del repositori poden crear debats en aquesta categoria.
  • 💬 General: per a debats generals.
  • 💡 Ideas: per a suggeriments i propostes.
  • 🗳 Polls: per realitzar enquestes.
  • 🙏🏻 Qüestions (Q&A): per a preguntes i respostes.
  • 🙌🏻 Show and Tell: per a compartir projectes i treballs relacionats amb el repositori.

Incidències

Les Incidències o Issues són una eina de creació i seguiment d'incidències relacionades amb un projecte.

En aquest espai, també es permet la comunicació i la col·laboració entre els membres del projecte per a aportar informació sobre la incidència, debatre sobre la seua resolució.

Incidències a Material for MkDocs

Material for MkDocs també utilitza la funcionalitat d'incidències per informar sobre problemes, suggeriments o millores del tema.

Podeu accedir a les incidències d'aquesta ferramenta mitjançant la secció Issues del menú superior.

Llista d'incidències en un repositori de GitHub

Figura 4. Llista d'incidències en el repositori mkdocs-material a GitHub

Les incidències contenen la següent informació:

  • Títol: descripció breu de la incidència.
  • Descripció: Informació detallada de la incidència.

    En aquesta secció és important proporcionar tota la informació necessària per a entendre la incidència i poder resoldre-la.

    A més, els propietaris del repositori poden configurar plantilles per a la creació d'incidències, que faciliten la recopilació de la informació necessària.

  • Assignació: Permeten assignar a un o més membres del projecte a la incidència.

  • Etiquetes: Permeten categoritzar les incidències per a facilitar-ne la gestió.
  • Fites: Permeten organitzar les incidències per complir un objectiu específic.
  • Referències: Permeten relacionar aquesta incidència amb altres incidències o consultar si aquesta ha segut referenciada per altres.
  • Pull Requests: si la incidència està relacionada amb una sol·licitud de incorporació.

Les incidències es creen amb l'estat de Oberta, que pot ser canviat a Tancada una vegada ha sigut resolta.

Exemple d'incidència a Material for MkDocs

La següent imatge mostra una incidència en el repositori Material for MkDocs, on s'informa d'un problema per deshabilitar la barra de cerca.

Incidència en un repositori de GitHub

Figura 5. Incidència en el repositori mkdocs-material a GitHub

Exemple de plantilla per a incidències

En aquest repositori s'ha configurat una plantilla per informar d'una correcció en la documentació. Podeu veure el seu funcionament si trieu la plantilla Correcció en la creació d'una nova incidència.

Les plantilles es defineixen en fitxers Markdown, que s'han de guardar en la carpeta .github/ISSUE_TEMPLATE.

.github/ISSUE_TEMPLATE/correccio.md
---
name: Correcció
about: Comunica l'error per ajudar-nos a millorar!
title: "[CORRECCIO]"
labels: bug, documentation
assignees: ''
---

**Localització l'error**
Indica l'enllaç a la pàgina que conté l'error.


**Descriu l'error**
Indica de manera clara quin és l'error.


**Correcció**
Indica com es pot corregir l'error.


**Captures de pantalla**
Si és necessari, pots adjuntar una captura de pantalla.


**Context addicional**
Pots indicar context addicional a la correció (ex. navegador web utilitzat, sistema operatiu...)

GitHub Projects

Els projectes de GitHub és una eina de gestió de tasques que permet organitzar, classificar i prioritzar les tasques d'un projecte.

Projecte d'exemple

He creat un Projecte d'exemple dins de l'organització del curs. Aquest projecte està buit, però és útil perquè pugueu entrar i veure les diferents vistes i opcions que ofereix.

Exemple de projecte en un repositori de GitHub

Figura 6. Exemple de projecte en un repositori de GitHub

Exemple de projecte utilitzat a l'aula

La següent imatge mostra l'estat d'un projecte utilitzat a l'aula per a organitzar les tasques dels alumnes en un projecte de desenvolupament de programari col·laboratiu.

Exemple de projecte en un repositori de GitHub utilitzat a l'aula

Figura 7. Exemple de projecte en un repositori de GitHub utilitzat a l'aula

Els projectes estan organitzats en diferents pestanyes, que inclouen diferents vistes i organització de les tasques:

  • Backlog: un tauler Kanban amb les tasques pendents organitzades per columnes.
  • Current iteration: tasques que s'han planificat per a la iteració o Sprint actual.
  • Roadmap: un diagrama de Gantt amb les tasques planificades al llarg del temps.
  • Team planning: Mostra una vista més detallada de cada tasca, organitzades per estat, prioritat i assignació.
  • My items: Semblant a la vista de "Team planning", però mostra només les tasques assignades a l'usuari.

Cada tasca es crea com un Esborrany (Draft), que pot ser convertida a una Incidència en el repositori.

Cada tasca conté la mateixa informació que una incidència, però a més, es pot especificar:

  • La persona assignada.
  • La prioritat.
  • La mida.
  • L'estimació de temps.
  • La data d'inici
  • La data de finalització.
  • La iteració a la que pertany.
Exemple de tasca

La següent imatge mostra un exemple d'una tasca creada com a Esborrany (Draft) en un projecte de GitHub.

Exemple de tasca

Figura 8. Exemple de tasca en un projecte de GitHub

Fites

Les fites o Milestones són un mecanisme per organitzar Incidències i Pull Requests dins d'un repositori. S'utilitzen per definir objectius específics en el desenvolupament del projecte.

Cada fita conté la següent informació:

  • Títol
  • Descripció
  • Data de venciment (Opcional)
  • Percentatge de progrés, calculat respecte de les incidències obertes i tancades.

Podeu accedir a les fites amb el botó Milestones, des de la vista de Issues o Pull Requests del repositori.

Fites a aquest repositori

En aquest repositori s'ha creat una fita per a organitzar les incidències relacionades amb la preparació de la documentació per a portar a terme el curs.

Fita en aquest repositori

Figura 9. Fita en aquest repositori

Llançaments

Els llançaments o Releases és una funcionalitat de GitHub que permet indicar quan una versió del projecte ha segut llançada, incloent informació rellevant sobre els canvis realitzats i les persones que han contribuït.

Els llançaments sempre estan associats a una etiqueta, que pot existir prèviament o es pot crear al moment. Encara que són similars, no hem de confondre un llançament amb una etiqueta. Els llançaments són elements de GitHub i, en canvi, les etiquetes són objectes de Git.

Llançaments a Material for MkDocs

Material for MkDocs també utilitza la funcionalitat de llançaments per a indicar que s'ha publicat una nova versió del tema.

Podeu accedir als llançaments d'aquest repositori mitjançant la secció Releases de la secció lateral de la pàgina principal del repositori.

Exemple de llançament en un repositori de GitHub

Figura 10. Exemple de llançament en el repositori mkdocs-material a GitHub

Des de la secció de llançaments es pot crear un nou llançament, on cal incloure la següent informació:

  • Títol: descripció breu del llançament o número de versió.
  • Descripció: informació detallada dels canvis realitzats.
  • Etiqueta: etiqueta associada al llançament.
  • Arxius binaris: arxius binaris associats al llançament.

Informació

A més, existeix l'opció de generar les notes de llançament, que inclouran informació sobre les Pull requests i les persones que han contribuït de manera automàtica.

Creació d'un llançament

La següent imatge mostra la creació d'un nou llançament en un repositori de GitHub.

Creació d'un llançament

Figura 11. Creació d'un llançament en un repositori de GitHub

📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.