class: center, middle, inverse, title-slide # Python II y GitHub ### Licenciatura en Ciencias Genómicas, UNAM ### First version: 2022-07-08; Last update: 2023-08-21 --- <style type="text/css"> /* From https://github.com/yihui/xaringan/issues/147 */ .scroll-output { height: 80%; overflow-y: scroll; } /* https://stackoverflow.com/questions/50919104/horizontally-scrollable-output-on-xaringan-slides */ pre { max-width: 100%; overflow-x: scroll; } </style> ## Contenido 1. [Especificar versiones en Git con tag](./leccion1/1-Etiquetas.html) 2. [Trabajar con ramas en Git: git branch](./leccion2/2-Ramas.html) 3. [Manejo de issues en GitHub](./leccion3/3-issues.html) 4. [Gestión de un proyecto con GitHub](4-project.html) --- # Gestión de un proyecto con GitHub ## Objetivo Al finalizar la lección, dispondremos de un espacio integrado para la gestión de issues y pull requests; medio por el cual podremos priorizar y coordinar nuestro trabajo y el desarrollo del proyecto en general. Conoceremos cómo crear un proyecto y tareas en GitHub, así como vincularlo a un repositorio. <img src="img/board.png" width="450px" style="display: block; margin: auto;" /> --- ## Introducción Pensemos en que queremos dar inicio a un proyecto. Sin importar el tipo que sea, lo principal es comenzar identificando las actividades que debemos realizar, de inicio no lograremos identificar todas las tareas, pero sí al menos las generales. En el caso de un proyecto donde estamos desarrollando código pasa exactamente lo mismo; tenemos que organizar nuestras actividades, y en conjunto las del equipo de trabajo y colaboradores. <img src="img/tablero-kanban.png" width="450px" style="display: block; margin: auto;" /> --- ## "Project" en GitHub Un _proyecto_ en GitHub es tablero u hoja de cálculo personalizable que integra los issues y solicitudes de incorporación de cambios (pull requests). En un proyecto se puede personalizar el diseño filtrando, clasificando y agrupando los issues y pull requests. También puede agregar campos personalizados para rastrear metadatos. Los proyectos se componen de issues, pull requests y notas que se clasifican como tarjetas en columnas de su elección. Puedes arrastrar y soltar para reordenar las tarjetas dentro de una columna, mover tarjetas de columna a columna y cambiar el orden de las columnas. <img src="img/projects_board.png" width="850px" style="display: block; margin: auto;" /> --- ## Creación de un "Project" en GitHub 1. Ir a la sección "Projects" y hacer clic en New project -- 2. Seleccionar una plantilla (board) -- 3. Observar que el proyecto está compuesto por 3 carriles "Todo", "In progress" y "Done" -- 4. Asignar un nombre al proyecto -- 5. Agregar una actividad --- ## "Project" personalización - Seleccionar una vista diferente (table, board) - Configurar campos para desplegar: Repository, Labels, Reviewers, etc. - Agregar/borrar items y carriles - Cambiar el nombre a los carriles - Mover las tareas entre los carriles conforme se vayan realizando --- ## Conclusión Por medio de los **Projects** en GitHub podemos planificar las tareas de realizaremos en nuestro proyecto, así como priorizar aquellas actividades que deben ser resueltas. _¡Un "project" en GitHub es una excelente forma de organizar y controlar todo el trabajo en nuestro repositorio!_ --- ## Actividad Generar la segunda versión de mi repositorio, considerando que: * Debe de exitir un solo archivo por cada programa. Recuerden que los cambios las controla Git, no es necesario tener varios archivos del mismo programa cambiando el nombre * Todos los programas deben recibir paso de parámetros * Actualizar el archivo *readme* de cada programa * Crear/actualizar el archivo *readme* del repositorio y poner el link hacía el readme de cada programa * Por cada programa debe de existir la siguiente estructura: [Repositorio] [Programa X] [doc] archivo readme [src] programa python [data] ejemplos/archivos de datos --- ## Tareas - TAREA: Crear un *proyecto* asociado al repositorio - TAREA: Crear los *issues* necesarios para organizar el trabajo que conllevará esta segunda versión del repositorio **RECUERDA** que todo el trabajo deberás realizarlo en la rama *develop* y hacer merge con la rama *master*. <img src="img/flujoTrabajo.png" width="500px" style="display: block; margin: auto;" />