EGC 2026/2027

¿Podemos liberar esta aplicación?

El escenario

Acabas de incorporarte como estudiante en prácticas a una empresa de desarrollo de software. Tu primera tarea consiste en valorar qué licencia podría utilizar la empresa para liberar y compartir con la comunidad una aplicación Python que hasta ahora solo ha usado internamente. La aplicación la crearon hace unos meses otros estudiantes en prácticas, utilizando un agente de IA durante su desarrollo.

En la empresa han oído hablar de los SBOM y de las obligaciones que introduce el Reglamento europeo de Ciberresiliencia (CRA). Quieren saber si un SBOM puede ayudarles a conocer los componentes de la aplicación y a tomar una decisión informada sobre su publicación.

Tu encargo

  1. Investiga el SBOM y el CRA. Averigua qué es un Software Bill of Materials (SBOM), para qué sirve y qué establece el CRA sobre su elaboración y uso. Identifica las disposiciones relevantes y explica si las obligaciones se aplican necesariamente al caso de esta empresa.
  2. Aprende a usar Syft. Consulta la documentación de Syft y úsalo para generar un SBOM de un repositorio propio o público que elijas. Documenta brevemente qué has analizado, los comandos utilizados y qué información has obtenido.
  3. Audita la aplicación de la empresa. Utiliza Syft con la la aplicación que se quiere liberar (que está disponible en este repositorio). Examina los componentes y sus dependencias, identifica sus licencias y contrasta los resultados con los ficheros y metadatos del proyecto. Señala cualquier información que no puedas verificar.
  4. Propón cómo liberar la aplicación. Recomienda una licencia concreta y justifica si resulta viable publicar el programa con ella. Si detectas impedimentos, indica qué cambios o comprobaciones harían falta antes de liberarlo. Considera también qué se sabe del origen y los derechos sobre el código creado con ayuda de IA.
  5. Automatiza el SBOM en GitHub Actions. Estudia cómo crear un workflow que genere automáticamente un SBOM al recibir cambios y lo conserve como artefacto descargable. Comprueba que funciona y explica cómo acceder al resultado.