FOSSA: Software de código abierto para gestión de licencias

Los desarrolladores senior saben que uno de los mayores problemas con la programación actual no es la codificación en sí, sino mantenerse del lado correcto de todas las licencias de código abierto del código base. FOSSA tiene una respuesta.

Nadie se convirtió en programador para poder gestionar licencias de código abierto. Pero eso es lo que muchos desarrolladores deben hacer en estos días. Black Duck Software, el proveedor de soluciones legales y de logística de software de código abierto, y North Bridge descubrieron en 2015 que el 66 por ciento de las empresas crea software de código abierto. Eso es genial, pero todo ese código viene con una amplia variedad de licencias, cada una con su propio conjunto de requisitos. ¿Qué debe hacer un desarrollador o una empresa?

Desde hace mucho tiempo existen programas corporativos, como los de Black Duck Software, White Source Software y Sonatype, que proporcionan escaneo de código y administración de licencias de código abierto. Este no es un trabajo pequeño. Según Sonatype, la aplicación promedio contiene 106 componentes de código abierto.

Kevin Wang, CEO de FOSSA, tiene un enfoque diferente. El fundador de 22 años menciona que “el escaneo de códigos ya no es suficiente. El enfoque de FOSSA para el escaneo de dependencias aprovecha el análisis de códigos estático y dinámico. El análisis dinámico permite a FOSSA obtener una visión precisa y en vivo de las dependencias que se incorporan en las compilaciones. El análisis estático complementa los resultados con metadatos sobre cómo se incluyen las dependencias para potenciar las funciones de inteligencia profunda y los motores de recomendación. Ambos enfoques se utilizan para construir la infraestructura más precisa, eficaz y más inteligente para administrar tu código abierto “.

Eso está muy bien, pero al abrir su infraestructura de análisis de dependencias, la compañía está dando un interesante paso adelante. FOSSA está utilizando el código abierto para administrar automáticamente las licencias de código abierto. Es un plan muy interesante.

El programa es compatible con más de 15 lenguajes y entornos. Estos incluyen JavaScript, Java, Ruby, Golang y PHP. FOSSA es hoy en día un web service escrito en Go que se importa desde GitHub.

FOSSA trabaja analizando tu proyecto por las dependencias después de que su sistema de compilación haya compilado tu proyecto. Esto proporciona información de dependencia mucho más precisa que solo leer los archivos de manifiesto del paquete. Este es un problema real. Como señala FOSSA:

  • Algunas herramientas de compilación no son determinísticas, por lo que dos compilaciones con la misma configuración pueden dar como resultado el uso de diferentes dependencias.
  • Muchos ecosistemas usan versionado semántico para especificar rangos de dependencias, por lo que ejecutar la misma compilación en diferentes momentos puede causar dependencias diferentes si se publicó una nueva versión.
  • Algunas herramientas de compilación ejecutarán comandos externos o código arbitrario que es imposible de analizar estáticamente.

Entonces, en lugar de tratar de adivinar el comportamiento de tu sistema de compilación, FOSSA ejecuta localmente usando sus herramientas de compilación para determinar una lista de dependencias exactas utilizadas por tu binario.

Hay una necesidad real de esto. A pesar de las herramientas comerciales que ya están disponibles, dijo Wang, la mayoría de las personas todavía usan una hoja de cálculo para rastrear los requisitos de licencia de forma manual.

Entonces, ¿por qué el enfoque de código abierto de FOSSA? Wang explicó: “Al final del día, todos usan el código abierto de manera diferente. Aunque en muchos lenguajes hay convenciones y estructuras con respecto a las dependencias, siempre tendrás muchos casos extremos debido a la gran cantidad de formas en que las personas comparten el código. Es crítico que este sea un proyecto abierto y colaborativo “.

FOSSA está licenciado bajo la Mozilla Public License 2.0. Para ganar dinero con este plan, Wang explicó que, si bien la versión de la interfaz de línea de comandos (CLI) es gratuita y de código abierto, el panel y el soporte basados en la web proporcionarán los ingresos necesarios para mantener abiertas las puertas de FOSSA.

Administrar licencias de código abierto es un mal necesario, y FOSSA abordando el tema con un enfoque de código abierto puede ser justo lo que se necesita para ponerlo en marcha.