No son pocas las veces que una empresa decide utilizar una herramienta Open Source. A medida que pasa el tiempo, y la empresa cambia alrededor de la herramienta, surgen nuevos requisitos y necesidades.
A veces se nos plantea la posibilidad de coger el código y hacerle pequeñas modificaciones rápidas para adaptar el software a nuevas necesidades, sobre todo si el código no es compilado (¡sólo tienes que editar el fichero y listos!).
Dichos cambios pueden venir principalmente en forma de:
- parches del autor
- parches de terceros
- parches propios (desarrollados por nosotros mismos)
Cuando hacemos cambios a un proyecto Open Source tenemos que tener en cuenta que el código pasa a ser nuestro y que asumimos ciertas responsabilidades que a veces se obvian.
1) Reinstalación
Ten en cuenta que es probable que la herramienta deba reinstalarse en otra máquina. Esto aplica incluso si no modificas el código.
- Guarda una copia del código original y los cambios que has hecho sobre él. Idealmente incorpóralo a tu sistema de versionado de código.
- Si apuntas los pasos que has seguido para instalarlo, puede ser de gran ayuda en un futuro.
- No cuentes con que el fichero que te bajaste siempre estará disponible on-line. Guárdalo en un sitio seguro, ya que hay proyectos que desaparecen, otros borran versiones por no poder mantener un histórico completo, etc.
2) Actualización
Ahora que has hecho cambios, el responsable del código eres tú.
- Piensa como gestionarás un cambio de versión con tus cambios aplicados.
- Si el proyecto lanza una actualización de seguridad tú serás el responsable de reaplicar tus cambios a la nueva versión.
- Piensa que la distribución de tu Sistema Operativo puede sobrescribir tus cambios si se instaló de paquete.
Después de reaplicar los parches, ¿cómo verificarás que sigue funcionando todo correctamente? Si el proyecto tiene un conjunto de tests es el momento de empezar escribir unos tests adicionales para tus funcionalidades.
3) Publicación de cambios
Si modificas el código fuente de un proyecto vigila las implicaciones de licencia que tiene. Puede que tengas que publicar tus cambios para cumplir adecuadamente con la licencia. Consulta con un especialista si tienes dudas.
4) Únete a la comunidad
- Apúntate a las listas de correo. Muchos proyectos ponen a disposición de sus usuarios una lista de correo «Announce» (de poco volumen) donde sólo se anuncian nuevas versiones o se comunican problemas de seguridad.
- Apúntate a la lista de usuarios o de desarrollo para participar y proponer tus modificaciones. Otros usuarios y desarrolladores te podrán ayudar a hacer tus cambios más eficientemente.
5) Contribuir modificaciones
Intenta que las modificaciones que hagas se acepten en el proyecto principal. Si has estado exponiendo tus cambios en la lista de desarrolladores seguro que ya tienes mucho de ganado. Muchos más usuarios se beneficiarán, y aún más importante: ya no tendrás que mantener y aplicar tus parches para siempre, ya que el proyecto habrá asumido esa responsabilidad al incorporar tus cambios.
6) Usa los puntos de extensión de la herramienta
Muchísimos proyectos permiten cargar plug-ins que extienden el comportamiento de la herramienta. Si puedes implementar tus funcionalidades vía un plug-in te verás beneficiado por una mayor facilidad de actualización, ya que las actualizaciones menores a la base del producto no deben romper la API de plug-ins sin aviso.
En resumen…
El hecho de tener el código de un proyecto a mano no debe hacer que nos tomemos a la ligera la decisión de hacer cambios sobre él. A medio plazo los problemas de mantener «tu versión» pueden llegar a ser mucho más de lo que te imaginabas.
Comentarios