Liberar Software
Publicación de código de programas como software libre
Cualquier miembro de la comunidad universitaria puede publicar como software libre un programa que haya desarrollado. Esta guía explica cómo realizarlo, prestando especial interés a los aspectos que se valoran en las evaluaciones de la actividad investigadora del PDI.
Nósete que el término “programa” en este documento guía se refiere a un programa de ordenador completo, o una parte de él (una biblioteca, un módulo, etc). Este excluye explícitamente la liberación de conjuntos de datos de investigación, que se explican en otra guía.
Pasos para publicar un programa como software libre:
Comprobación de propiedad intelectual
Antes de proceder a liberar el código fuente de un programa es importante asegurarse de que se tiene la propiedad intelectual sobre él. Algunos casos:
- Si eres un alumno y has desarrollado tu programa con independencia razonable. En particular, si has hecho por tu cuenta programas para tu TFG/M o tesis. No obstante, aún en este caso recomendamos informar de esta decisión a la dirección del trabajo y otras personas que hayan aconsejado en el proceso.
- Si es una obra colectiva (por ejemplo, un programa desarrollado en el contexto de un proyecto de investigación) es importante contar con la autorización del resto de desarrolladores.
Elección de licencia
El poseedor de los derechos de propiedad intelectual de un programa debe indicar, en el momento de liberarlo, qué derechos otorga a las personas que lo usen. Para ello se recomienda usar una licencia de software libre aprobada por alguna asociación con recorrido en la gestión de software libre, como la Free Software Foundation (FSF) y la Open Source Initiative (OSI)
En el caso de los criterios de evaluación de la convocatoria 2024 del sexenio de investigación, se nombre explícitamente que esté protegido por alguna de las licencias aprobadas por este organismo: https://opensource.org/licences/
Algunas de las licencias más comunes reconocidas en este listado son las siguientes:
|
![]() |
El uso de una licencia ampliamente utilizada favorece la integración con otros sistemas libres, lo que puede aumentar el impacto del software (otro de los aspectos indicados en la convocatoria 2024 del sexenio de investigación).
Incorporación de aviso de licencia
El siguiente paso es incorporar mensajes que informen a los usuarios de la licencia elegida para el programa. Normalmente se realiza en varios lugares:
- Incorporando al inicio de los ficheros de código fuente un mensaje que hace referencia a la licencia. Se recomienda incluir el identificador SPDX de la licencia. Por ejemplo, en las primeras líneas de un fichero Python se podrían poner las siguientes líneas precedidas por el símbolo de comentario #:
# Copyright 2024 Carmen Española, Juan Pérez. SPDX-License-Identifier: GPL-3.0 - En el directorio principal del código fuente del programa se puede incorporar un fichero LICENSE.txt con el texto de la licencia descargado de Internet.
- Por último, suele incorporarse dentro del programa la opción de consultar la licencia. Por ejemplo, es común encontrarla en el menú “Acerca de”.
Publicación del código del programa
Una vez realizados los pasos anteriores se puede proceder a publicar el código fuente de nuestro programa. Actualmente el repositorio más usado es GitHub, aunque existen alternativas como GitLab, GNU Savannah o SourceForge. En el caso concreto de GutHub, ofrece un programa educativo, y a la hora de crear un proyecto, se puede hacer dentro de una organización (para un centro, grupo de investigación, asignatura, etc.) asociada a la cuenta en GitHub de la UCA: https://github.com/enterprises/uca
Estos repositorios suelen incorporar servicios que ayudan al desarrollo, como control de versiones con Git, alojamiento de versiones ejecutables del programa para varios sistemas operativos, listados de tareas en desarrollo o asistentes al desarrollo potenciados por Inteligencia Artificial. Igualmente, suelen proporcionar estadísticas de descargas, aportaciones de colaboradores o actividad que pueden ser de interés para incluir como evidencia del impacto del programa a la hora de incluirlo como mérito en la convocatoria de sexenios.
Además, en lo referente a la evaluación de los sexenios, se recomienda indicar en un lugar visible la financiación recibida para el desarrollo del programa, especialmente de convocatorias competitivas
Recomendaciones adicionales
Aunque con los pasos anteriores se completa la liberación de un software, hay una serie de buenas prácticas adicionales:
- Incorporar (o enlazar) la documentación adicional que se haya generado junto con el software: memoria de TFG/M, documentos de análisis, diseño arquitectónico, etc
- Incorporar la URL del repositorio en los artículos, memorias de investigación o conjuntos de datos (datasets) que hayan hecho uso de él.
- Proporcional manuales o guías para el uso satisfactorio del programa. Pueden ser en formato PDF, en vídeo o cualquier otro que se considere adecuado.
- Ofrecer datos de contacto para quien quiera escribir a los autores o colaborar en el desarrollo del programa.
- Ofrecer listado de errores que se han detectado en versiones anteriores del programa.
- Ofrecer listado de futuras funciones que se espera tenga el programa.
- Si se desea facilitar la disponibilidad a largo plazo del software, el código se puede alojar adicionalmente en otros sistemas dedicado a ello, como Archive.org o Software Heritage.
- Además, en el caso concreto de software producto de actividad investigadora, se puede gestionar con la OTRI (Oficina de Transferencia de Resultados de Investigación de la UCA) el registro del programa en la Dirección Nacional de Derecho de Autor, que generará un código de registro. Este código puede facilitar la trazabilidad del uso del software en contratos de transferencia de investigación al tejido productivo (aspecto valorado en los Sexenio de Transferencia de 2018).
- En general, cualquier información que pueda ayudar a generar una comunidad activa alrededor del software.
Ejemplos
Ejemplos de programas libres desarrollados en la UCA:
- ChatBotSQL: https://github.com/rubenperezm/ChatbotSQL
- Gades Siege: http://drpantera.github.io/gsiege/
Otros enlaces de interés
Para cualquier duda que tenga en este proceso, estamos a su disposición en conocimiento.abierto@uca.es