Saturday, July 12, 2014

gitsv - Facilitando el Versionado de Software


¿Qué es gitsv?
¿Por qué hacerlo?
    Motivos personales
    Motivos profesionales
¿Cómo funciona? [Vídeo incluído]













¿Qué es gitsv?

Es un librería escrita en nodejs que facilita al desarrollador la tarea del versionado de un producto de software.

Como trasfondo tenemos http://semver.org/ un manifiesto con unas especificaciones que nos ayudan a tener una ideología sobre el versionado muy concreta.

En el manifiesto hacen referencia al “dependency hell”, todos los lenguajes de programación están convergiendo en la automatización de tareas repetitivas y despliegues indoloros, una buena parte de de este apartado es suplir las dependencias de nuestros proyectos, ya que actualmente parece muy descabellado realizar un proyecto de software comercial sin ninguna librería externa pero seguro que todavía queda algún aventurero loco.

En el apartado de suplir dependencias nos encontramos con el problemas de las nuevas funcionalidades y arreglo de bugs que tienen las librerías. La propuesta es que a través del versionado el desarrollador de una librería pueda mandar un mensaje a aquellos que hacen uso de su trabajo para evitar futuros problemas.

¿Cuántas veces has actualizado una librería y ves que todo empieza a hacer aguas? O peor, ¿cuántas veces actualizas y parece que todo va perfectamente pero no es así?

En este sentido creo que la propuesta de semver así como sus enunciados es una gran idea y me veo en la obligación de llevarlo a cabo en mis proyectos futuros.


¿Por qué hacerlo?


Motivos personales

Bueno, durante estos últimos años he dedicado tiempo a formarme haciendo katas. Es un ejercicio muy interesante y que me ha aportado muchas ideas y conceptos. Pero este año  debido a mi reducido tiempo y a una idea previa de lanzar software open source creí conveniente juntar ambas cosas. De esta manera puedo seguir afianzando concepto como TDD, aprendiendo lenguajes, librerías al mismo tiempo que distribuyo algo usable al mundo.

Otro beneficio de aunar estas dos cosas es la remota posibilidad de que a alguien le interese alguno de los proyectos y pueda involucrarse en ellos. Vivir en Almendralejo es maravilloso pero tiene desventajas como que no es fácil montar un grupo de desarrolladores que se junten regularmente para practicar o hacer charletas.


Motivos profesionales

La tarea del versionado es una tarea aparentemente sencilla, pero cuando un producto empieza a entrar en un ciclo continuo de mejoras es una tarea que hay que realizar a menudo y aunque es breve hay que seguir una serie de pequeños pasos, normalmente obligatorios para la buena marcha del versionado, que son fáciles de olvidar o pasar por alto en algún momento

Por esta razón con esta librería quiero unificar todos los pasos que considero importante e incluso a largo plazo ir añadiendo sugerencias si se detectan carencias.



¿Cómo funciona? [Vídeo incluído]

Con el paso del tiempo irá cambiando las especificaciocnes así que te recomiendo pasarte por la documentación del proyecto 


La librería es un módulo de nodejs instalable de forma global en un sistema.

Las opciones son sencillas
Tienes varias opciones actualmente
-M - Para aplicar una versión Major
-m - Para aplicar una versión minor
-p - Para aplicar una version patch
-l - Para añadir un mensaje al commit que genera la librería para añadir la versión

De todas formas creo que mejor que explicar en palabras es ver como funciona la librería así que vamos a ello.




No comments:

Post a Comment