FOSSA, una herramienta abierta contra los conflictos con licencias abiertas
Desarrollar software de código abierto tiene ventajas, pero también inconvenientes y uno de los más habituales es el cumplimiento de las licencias, sobre todo cuando se maneja una gran cantidad de dependencias en la aplicación que pueden generar incompatibilidades. Para facilitar dicha tarea, un joven de 22 años llamado Kevin Wang ha fundado el proyecto FOSSA (Free Open Source Software Analysis).
Según cuenta Wang a ZDNet, “el escaneo de código no será necesario nunca más. El enfoque de FOSSA para el análisis de las dependencias se aprovecha tanto del análisis estático como el dinámico. El análisis dinámico permite a FOSSA obtener una visión precisa de las dependencias que incorporan las compilaciones, mientras que el análisis estático complementa los resultados con metadatos sobre cómo se incluyen las dependencias para potenciar características de inteligencia profunda y motores de recomendaciones. Ambos enfoques son utilizados para construir una infraestructura más precisa, con más rendimiento e inteligente para gestionar código abierto.”
Por lo que parece, el gran aporte de FOSSA es la apertura de su infraestructura de análisis de dependencias, haciendo que se utilice código abierto para gestionar automáticamente el licenciamiento bajo Open Source. FOSSA soporta 15 lenguajes y entornos de programación, incluyendo tecnologías populares como JavaScript, Java, Ruby, Golang y PHP. De momento se trata de un servicio web escrito en Go que permite importar desde GitHub.
FOSSA ofrece una información sobre las dependencias mucho más precisa que solo leyendo los ficheros de manifiesto de un paquete, apuntando contra los problemas que presentan las herramientas de compilación no deterministas, en las cuales dos compilaciones con la misma configuración dan como resultados diferentes dependencias usadas; el uso de dependencias diferentes en la ejecución en caso de cambiar la versión de la aplicación; además de la ejecución de órdenes externas o código arbitrario que no se puede analizar estáticamente.
¿Cómo funciona exactamente FOSSA? En lugar de intentar adivinar el comportamiento del sistema de compilación, ejecuta localmente usando sus propias herramientas de compilación para poder así determinar la lista de dependencias exactas utilizadas por un binario. FOSSA está licenciado bajo Mozilla Public License 2.0 (MPL 2.0). Con una interfaz mediante línea de comandos que es de código abierto y distribuida gratuitamente, el proyecto ofrece una versión gratuita y otra de pago.
Con un objetivo diferente pero complementario, hace unas semanas os hablamos de Licensed, nueva herramienta de GitHub para ayudar a licenciar proyectos de código abierto.