Experiencia
Mi primera vez contribuyendo al open source

Mi primera vez contribuyendo al open source

Cuando estaba considerando crear mi sitio web personal, me di cuenta que mi cuenta en Github estaba bastante vacía. Lo que puede resultar curioso por ser un desarrollador de software con más de 5 años de experiencia. La verdad yo también lo pensé, pero la mayoría de mi código está en repositorios privados que no puedo compartir, y nunca he contribuido al open source. En algún momento tuve curiosidad, pero no me involucré.

Recientemente comencé un nuevo proyecto personal usando Flutter, que como sabrán es completamente open source. Y mi curiosidad volvió, haciéndome querer aprender más sobre el open source y comenzar a contribuir, pero no sabía por donde empezar.

Estoy seguro que muchos enfrentan el mismo problema, así que decidí compartir mi experiencia contribuyendo a software open source, mis pensamientos sobre el tema y consejo si es posible.

Dónde comenzar

Mi experiencia aprendiendo Flutter es lo que me empujó a esto, así que obviamente lo primero que pensé fue en contribuir a Flutter. Pero si alguna vez has visto uno de estos grandes frameworks, aún cuando tengas buen conocimiento de él, la cantidad de código, información y cambios que ocurren rápidamente puede ser intimidante.

No estoy diciendo que no puedes iniciar tus contribuciones en uno de estos frameworks. Pero creo que el tiempo invertido en aprender las reglas de contribución del repositorio y cómo funciona el código antes de poder hacer contribuciones significativas es demasiado.

Lo que hice en vez de eso fue explorar repositorios por un tiempo, antes de tener una idea. Mientras trabajaba en mi proyecto en Flutter use un par de widgets hechos por la comunidad, así que los revisé. Pude ver que eran bastante simples y que probablemente podría extender su funcionalidad.

Eligiendo mi primera contribución

Primero decidí darle un vistazo al repositorio para el widget Spinbox. Fui directamente a la pestaña de issues, donde encontré uno abierto que se veía sencillo. Estaba cerca de encontrar lo que buscaba.

Revisé la conversación para verificar que nadie estaba trabajando en la solución. Pero el último que mencionó que estaba interesado en trabajar en ello no había comentado en 6 meses, así que lo tomé.

Le hice un fork al repositorio y comencé a trabajar en la solución. El cambio era bastante sencillo de resolver, asi que solo me tomó un par de horas hasta que estaba listo para enviar un pull request

Abriendo mi primer pull request

Aquí es donde se pone interesante. Como dije, era un cambio sencillo. Después de enviar el pull request a las pocas horas el dueño del repositorio dejó un comentario:


This image has an empty alt attribute; its file name is image.png

Él hizo una propuesta diferente, mucho mas sofisticada que mi solución tan simplista. El solo hecho de leer el código de la solución me ayudó mucho. Desde expandir mi conocimiento en Inherited Widgets a aprender un poco mas sobre la material foundation.

Al final mi código no terminó en la rama principal, y está bien. No esperaba que mi primer pull request fuera exitoso ya que aún soy nuevo en esto.

Si quieres ver más detalles puedes ver la conversación en el pull request. También desglosaré la solución final (que no fue la mía) en un futuro post porque creo que es muy interesante.

Mi consejo

Esta fue mi primera contribución y la experiencia en sí fue muy educativa. Si tú quieres contribuir al software open source, lo que puedo sugerir por ahora es lo siguiente:

  • Elige algo familiar, si estás trabajando con un framework, elige algo relacionado a ese framework. Será mas cómodo y no tendrás que empezar en blanco.
  • Ve por proyectos pequeños, especialmente si tienes proyectos personales o un trabajo que no te deje mucho tiempo. Proyectos pequeños son más fáciles de entender y comenzar a contribuir.
  • Escoge proyectos activos, asegúrate que haya actividad en el repositorio al menos en los últimos 3 meses. Lo último que quieres es dar tu mejor esfuerzo en vano.
  • No temas preguntar, si hubiera sido más comunicativo seguramente podría haberle dado un mejor enfoque a mi solución. Y la respuesta que obtuve de todas formas mostraba que estaba dispuesto a ayudarme si lo hubiera hecho.
  • Y lo más importante. Si lo quieres hacer, sólo hazlo.

Etiquetas :

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *