User Tools

Site Tools


apuntes:documentacion

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:documentacion [2018/02/15 09:08] – [Herramientas colaborativas para la gestión de proyectos] Santiago Faciapuntes:documentacion [2019/01/04 13:02] (current) – external edit 127.0.0.1
Line 4: Line 4:
  
 === GitHub === === GitHub ===
 +
 +{{github.jpg?200 }}
 +
 +[[http://www.github.com|GitHub]] es una plataforma de alojamiento para sistemas de control de versiones basados en [[http://www.git-scm.com|Git]]. Proporciona alojamiento para repositorios de código fuente accesibles mediante el Sistema de Control de Versiones //Git// y además amplía el servicio con sus propias funcionalidades, como son //Gestión de incidencias//, //Wiki//, //Comunidad de usuarios// y otros servicios añadidos a lo que es la gestión del código y el proyecto.
 +
 +Actualmente es la plataforma de alojamiento de código fuente más utilizada (alrededor de 20 millones de usuarios la utilizan) y es especialmente conocida en la comunidad de software libre puesto que un gran número de proyectos de licencias alrededor de este tipo de software se alojan en esta plataforma.
 +
 +Actualmente //GitHub// ofrece alojamiento y funcionalidades gratuitas para repositorios públicos (orientados al uso de proyectos de software libre) pero paganado es posible conseguir repositorios privados.
  
 === Bitbucket === === Bitbucket ===
 +
 +{{bitbucket.png?200 }}
 +
 +[[http://www.bitbucket.org|Bitbucket]] es una plataforma de alojamiento para sistemas de control de versiones basados principalmente en //Git//, aunque soporta otros Sistemas de Control de Versiones como [[https://www.mercurial-scm.org|Mercurial]]. Al igual que //GitHub//, proporciona alojamiento para repositorios de código fuente y otras funcionalidades alrededor del proyecto asociado, como pueden ser //Gestión de Incidencias//, //Wiki//, //Comunidad de usuarios// y otros tantos servicios similares a los que ofrece //GitHub//.
 +
 +Actualmente //Bitbucket// ofrece alojamiento y funcionalidades gratuitas para repositorios tanto públicos como privados. También ofrece características extra a los repositorios de pago de forma similar a como hace //GitHub//.
 +
 +=== Fichero README.md ===
 +
 +Es un fichero, que podemos escribir en síntaxis //Markdown//, donde podemos realizar una breve descripción de nuestro proyecto y que //Bitbucket// se encargará de renderizar en la portada de la web de nuestro repositorio. Así, es bastante habitual incluir las siguientes secciones:
 +  * Título del proyecto
 +  * Descripción del proyecto
 +  * Requisitos para la instalación
 +  * Guía rápida de instalación (y si hay más documentación se enlaza aqui, por ejemplo a la Wiki del proyecto)
 +  * Enlace a la web (si la hay)
 +  * Información sobre los autores del proyecto
 +
 +Hay que tener en cuenta la importancia de este fichero ya que es la primera descripción que un usuario encontrará cuando acceda a nuestro repositorio
 +
 +<figure>
 +{{ bitbucket_readme.png }}
 +<caption>Vista general de un repositorio con README</caption></figure>
  
 === Gestor de incidencias === === Gestor de incidencias ===
 +
 +El gestor de incidencias (//issues//) de Bitbucket permite registrar cualquier tipo de incidencia (//bug, enhancement, proposa o task//) en la plataforma para que pueda ser gestionada y tratada por el equipo de desarrollo. Las incidencias deberán ser asignadas a un usuario que será el encargado de resolverla. Conviene tener en cuenta que hay que marcarlo en el momento de crear el repositorio si queremos poder utilizarlo.
 +
 +Lo más importante a la hora de registrar una incidencia es asignarle un título y descripción para que sea fácil de encontrar y reproducir por quién tenga que resolverla (incluso aunque sea uno mismo, no siempre se pueden resolver las incidencias en el momento de encontrarlas y más tarde quizás olvidemos algún detalle). Menos importante pero interesante será definir la inmportancia de la //issue// (ayudará a priorizar) y el tipo de incidencia:
 +  * **bug**: Un fallo que se ha localizado en el código
 +  * **enhancement**: Una mejora sobre el código ya escrito
 +  * **proposal**: Una propuesta sobre el código que ya funciona
 +  * **task**: Una tarea que debe realizarse. No tiene porque ir asociada a ningún problema o bug de código
 +
 +También podemos adjuntar algún fichero, como por ejemplo capturas que ayuden a detectar o comprender mejor el problema.
 +
 +Por último, la incidencia puede ser directamente asignada a un usuario (incluso a uno mismo). En caso de que no se sepa quién debe realizarla se puede dejar en blanco esperando que el responsable decida quién la tiene que corregir.
  
 <figure> <figure>
 {{ bitbucket_issues1.png }} {{ bitbucket_issues1.png }}
 <caption>Registro de incidencias en Bitbucket</caption></figure> <caption>Registro de incidencias en Bitbucket</caption></figure>
 +
 +La vista de incidencias tiene filtros automáticos que permiten localizar las incidencias rapidamente por su estado.
  
 <figure> <figure>
 {{ bitbucket_issues2.jpg }} {{ bitbucket_issues2.jpg }}
 <caption>Gestión de incidencias en Bitbucket</caption></figure> <caption>Gestión de incidencias en Bitbucket</caption></figure>
 +
 +Además, el gestor de incidencias de Bitbucket permite realizar ciertas gestiones sobre las mismas utilizando una serie de comandos que directamente pueden ser aplicados cuando se realizan los //commit// sobre el código con el comando //git//. Una lista de los comandos y opciones disponibles se puede encontrar [[https://confluence.atlassian.com/bitbucket/resolve-issues-automatically-when-users-push-code-221451126.html|aqui]].
 +
 +Por ejemplo, si tenemos una incidencia abierta con el número #13 que hace referencia a un //bug// en cierta parte del código, cuando resolvamos el error y nos dispongamos a hacer el //commit// que soluciona dicho problema, podemos ejecutar ese comando de la siguiente forma:
 +
 +<code bash>
 +santi@zenbook:$ git commit -m 'Corregido el fallo que impedía conectar con la Base de Datos fix #13'
 +</code>
 +
 +De esta forma, la incidencia con el número #13 será automáticamente marcada como resuelta sin que tengamos que acceder con el navegador al gestor de incidencias y resolverla manualmente a través de la web. Además, el mensaje del //commit// quedará asociado como mensaje de resolución de dicha incidencia.
  
 === Wiki === === Wiki ===
 +
 +Siempe que creemos por primera vez un repositorio en Bitbucket tendremos la oportunidad de decidir si queremos que se integre una Wiki con él. 
 +
 +A través de la Wiki podremos crear documentación asociada a nuestro proyecto/repositorio utilizando como síntaxis //Markdown// para su edición. En la página de Atlassian puedes encontrar una [[https://confluence.atlassian.com/bitbucketserver/markdown-syntax-guide-776639995.html|Guía de síntaxis Markdown]] que puedes usar con Bitbucket.
  
 <figure> <figure>
Line 145: Line 203:
 santi@zenbook:$ git checkout master santi@zenbook:$ git checkout master
 santi@zenbook:$ git merge develop santi@zenbook:$ git merge develop
 +</code>
 +
 +==== Subir cambios a una rama determinada ====
 +
 +Al ejecuta el comando ''git push'' e indicar el repositorio remoto se puede indicar también la rama a la que se quieren subir esos cambios
 +
 +<code bash>
 +santi@zenbook:$ git commit . . . . . .
 +santi@zenbook:$ git push origin develop
 </code> </code>
  
Line 294: Line 361:
     - Añade la funcionalidad requerida     - Añade la funcionalidad requerida
     - Modifica el ''README.md'' para añadir tu nombre como colaborador del mismo     - Modifica el ''README.md'' para añadir tu nombre como colaborador del mismo
 +    - Comprueba el estado del repositorio en tu equipo (''status'')
     - Añade los cambios realizados al proyecto     - Añade los cambios realizados al proyecto
-  -   +  - Sobre el mismo repositorio que los puntos anteriores, imagina que debes de eliminar un fichero que ya no es necesario que forme parte del mismo (si hace falta añade alguno para luego eliminarlo) y tampoco quieres que siga en tu equipo 
 +  - Imagina ahora que debes de eliminar un fichero que ya no es necesario que forme parte del mismo (si hace falta añade alguno para luego eliminarlo) pero quieres que siga formando parte del repositorio local en tu equipo 
 +  - Añade ahora en la ''Wiki'' del proyecto información sobre como instalar, ejecutar y usar la aplicación (3 páginas diferentes enlazadas y organizadas desde la portada de la Wiki) 
 +  - Registra ahora una nueva incidencia de tipo //mejora// para el repositorio y programa dicha mejora. En el momento de hacer el commit del código que la añade, haz que se marque como corregida. 
 +  - Amplia el ''README'' del proyecto y asegurate de que, al menos, incluyes la siguiente información 
 +    - Descripción breve del proyecto 
 +    - Requisitos para su instalación/puesta en marcha (remite a la Wiki para más información) 
 +    - Guía rápida de instalación (remite a la Wiki para más información) 
 +    - Información sobre los autores
  
 ---- ----
apuntes/documentacion.1518685702.txt.gz · Last modified: 2019/01/04 13:02 (external edit)