sábado, 11 de agosto de 2018

Contribuir al software libre: Cómo empezar.


A mí siempre me ha gustado desarrollar software. La parte en la que más me gusta participar en el equipo de desarrollo es la elaboración del código fuente, es decir en la programación. Actualmente no me dedico a la programación de forma profesional. Entonces, con el objetivo de poder participar en desarrollos de software pensé en participar en la elaboración de código para algún proyecto de los que actualmente se elaboran por comunidades o grupos sin ánimo de lucro. Actualmente hay muchos productos software que se pueden descargar de forma gratuita y estos productos están desarrollados por estas comunidades. Me planteé formar parte de alguno de los grupos que desarrollan estos productos. Recurrí a internet para ver donde podía colaborar. Buscando encontré este enlace:


En este enlace proponen varias plataformas a las que acudir cuando quieres colaborar en el desarrollo software de algún producto. Las plataformas propuestas ahí son:

·         Google Summer of Code y sus organizaciones.
·         Awesome First PR Opportunities
·         Lista de proyectos de Mozilla.
·         GitHub Explore

Yo elegí GitHub Explore y buceé a ver qué proyectos estaban en marcha. Lo primero que hice fue registrarme en la plataforma, paso obligatorio para poder colaborar.
Después elegí el proyecto en el que colaborar. Cuando se accede a GitHub Explore, hay una página que en diferentes categorías muestra los proyectos en los que se puede colaborar. También existe una búsqueda avanzada en la que se pueden seleccionar preferencias: lenguajes de programación, número de colaboradores, número de cambios en los últimos meses, etc.
Tras una larga y minuciosa búsqueda, seleccioné el proyecto TheAlgorithms/java ( https://github.com/TheAlgorithms/Java ). Para buscar el proyecto, me centré en algo que fuese sencillo para empezar. Descargué el código y lo cargué en mi IDE preferido Eclipse y empecé a trastear, leyendo código y ejecutando algoritmos. Encontré uno que fallaba referente a la obtención del Máximo Común Divisor. Entonces creé un incidente “issue” para informar del fallo. Alguien recogió la incidencia y arregló el problema. En este proceso recibí un correo de la persona que había arreglado el problema. Aproveché este correo para preguntarle si necesitaba ayuda con algún código y me dijo que sería útil refactorizar  el código de este repositorio de acuerdo con las  normas de codificación de Java.
Elegí un algoritmo y me puse manos a la obra. Estudié el código y comprobé cómo funcionaba. Después ayudada por los plugins “Sonarlint” de Sonarqube  y de Checkstyle para Eclipse, puse el código de acuerdo a las normas de codificación de Java.  Para terminar comprobé a través de pruebas manuales que el código seguía funcionando correctamente.
Para enviar las modificaciones a GitHub, tuve que crear un fork. En este fork almacené el nuevo código. Desde el fork abrí una nueva branch y desde esta branch creé una petición de cambio del fichero mediante un pull request.
Ahora estoy esperando a que alguien acepte mi pull request y que el fichero modificado se cargue en la rama principal (master) del proyecto. Y así estoy, a la espera.
Voy a indagar en otras plataformas, ya os contaré.

No hay comentarios:

Publicar un comentario