Durante el año 2019 me encontraba buscando una alternativa para la administración de fuentes de SIF América, ya que hasta el momento habíamos utilizado el antiquísimo CVS. El pasaje a Git era la opción obvia, pero cambiar la cultura de la empresa utilizando únicamente línea de comandos iba a ser una tarea muy ardua.

Buscando una UI que pudiera ayudar en la transición, luego de evaluar varias opciones, di con Gitea. Un excelente software de administración de proyectos desarrollado en Go. La interface y forma de utilización era lo suficientemente parecida a Github como para facilitar su introducción al equipo de trabajo.

Luego de instalar Gitea y probarlo un poco, noté que en nuestro caso de uso había una funcionalidad que sería muy útil pero que el producto no contemplaba. Estaba a punto de crear un issue en Github para solicitarla cuando me pregunté: “¿acaso no soy un programador?”. Decidí poner manos a la obra, aprender lenguaje Go y colaborar con el proyecto. Lo que inició como un pequeño aporte derivó en varios meses de colaboración intensiva, donde aprendí muchísimo y conocí excelentes personas de todo el mundo en una comunidad enfocada y dedicada, muy respetuosa y generosa.

A medida que fui aportando pull requests y realizando revisión de código, fui invitado a participar como maintainer, tomando un rol activo en el desarrollo de la aplicación.

Mi participación en el desarrollo y mantenimiento de Gitea fue enormemente beneficiosa para mí. Como se trata de un proyecto completo se requería cubrir todos los aspectos de un desarrollo, desde funcionalidad pura, tests unitarios, tests de integración, diseño y administración de base de datos, mantenimiento de versiones previas, diseño de migraciones, diseño de UI y experiencia de usuario, seguridad, escalamiento, etc. Fue mi primera vez participando en un proyecto de esa magnitud y complejidad de forma completamente distribuida, lo que me expandió significativamente el horizonte de experiencias.

Disfruté mucho participando del proyecto hasta que circunstancias personales me impidieron dedicarle suficiente tiempo. Espero algún día poder volver, y mientras tanto sigo de cerca su evolución.

Tecnologías utilizadas

  • Golang
  • Git
  • Make
  • Webpack
  • Docker
  • Drone
  • Hugo
  • Codecov
  • PostgreSQL, MySQL, SQLite, MSSQL
  • Node
  • Vue.js
  • Integración contínua
  • Distribución contínua

Gitea
Tagged on: