Resumen

  • La gramática de una expresión SPDX representa información de licencia; que la cadena sea válida no demuestra cumplimiento, permiso, lanzamiento o despliegue.
  • La especificación distingue lo declarado por autores de un paquete, lo encontrado en un archivo y lo concluido por quien crea un documento SPDX.
  • Un recibo que conserva alcance, fuente, expresión, diferencia explicada y decisión separada evita que una etiqueta adquiera una autoridad inexistente.

El problema empieza cuando la etiqueta llega sola

En muchas revisiones, el lector recibe un identificador antes de recibir la historia de ese identificador. Ve Apache-2.0, una combinación con AND o una excepción con WITH, y necesita saber qué puede significar para su organización. La rapidez tiene una ventaja real: el vocabulario normalizado evita que cada equipo vuelva a interpretar encabezados de licencia desde cero. Sin embargo, el dato se vuelve frágil cuando una pregunta distinta se coloca detrás de él: «¿podemos usar esto?», «¿está todo cumplido?», «¿puede salir la versión?» o «¿puede entrar en producción?».

SPDX define una forma de expresar identificadores, referencias, excepciones y combinaciones de licencia. Esa forma permite que una afirmación de información sea legible por personas y herramientas. No selecciona el objeto exacto al que una organización quiere aplicar su política, no confirma que el conjunto de información sea completo y no nombra a la persona que toma una decisión posterior.

La propia explicación pública de SPDX fija el límite: el proyecto recopila y comunica hechos y no hace interpretaciones jurídicas sobre licencias o cumplimiento de licencias. La frase no convierte a SPDX en un registro menor. Al contrario, hace que sus registros sean más honestos. Una representación puede ser común entre actores que no comparten contrato, política, jurisdicción, apetito de riesgo ni responsabilidad de despliegue.

Cada campo contesta una pregunta diferente

La licencia declarada de un paquete conserva lo que declararon sus autores. La especificación 2.3 señala que la información obtenida de un repositorio de terceros no debe incorporarse a ese campo. Es una regla de procedencia: no todo lo que un analista encuentra después pertenece a la declaración original.

Por eso el campo no debe ampliarse hasta aparentar una conclusión. Puede registrar una expresión SPDX, NONE o NOASSERTION, y una ausencia tiene el significado que la especificación atribuye a NOASSERTION. Ninguno de esos estados establece que un paquete carece de licencia, que una obligación no existe o que un destinatario puede actuar. Confundir un estado de información con una decisión elimina precisamente el vacío que un revisor posterior necesita ver.

La licencia concluida tiene otro dueño y otra función. Registra lo que el creador de un documento SPDX ha concluido que rige el paquete, o un valor alternativo cuando no puede determinarse. Una conclusión puede ser una pieza importante de análisis. No transforma al creador del documento en autor del paquete, ni vuelve esa conclusión una regla que obligue a todos los receptores.

La especificación no exige fingir que declaración y conclusión siempre coinciden. Si la licencia concluida difiere de la declarada, solicita una explicación escrita en los comentarios sobre licencia. En los datos de archivo aparece una separación análoga: la información efectivamente encontrada en un archivo no es lo mismo que la licencia concluida para ese archivo. Cuando difieren, la explicación preserva una ruta de revisión. El desacuerdo no es ruido que se deba borrar; es una diferencia de fuente, alcance o razonamiento.

Este detalle cambia la forma correcta de usar una exploración de archivos. Un resultado observado puede estar ligado a unos bytes concretos y a un momento determinado. Si esos bytes cambian, el hallazgo puede cambiar. Una conclusión posterior puede actualizarse y señalar el nuevo hallazgo que la motivó. El registro anterior no tiene que desaparecer para que el lector entienda qué se corrigió.

Informar una decisión no es tomarla

Después de reunir los registros, una organización quizá deba decidir si necesita más revisión, si aplica una regla propia a una entrega, si difiere una distribución o si acepta un riesgo de despliegue. Las fuentes de este artículo no determinan ninguna de esas decisiones para un paquete, archivo o producto concreto. Tampoco establecen una política universal, un responsable, una excepción comercial o un resultado jurídico.

La disciplina no consiste en despreciar la expresión porque no hace todo el trabajo. Consiste en permitirle hacer el suyo. Una expresión precisa puede indicar dónde comenzó una declaración, qué observó una herramienta o qué conclusión documentó alguien. Puede revelar que dos equipos están usando la misma etiqueta para cosas distintas. Puede permitir que otro lector reproduzca el punto de partida de una revisión. No debe presentarse como si ya hubiera respondido la pregunta que un dueño de política todavía tiene que resolver.

Un recibo para no prestar autoridad

El registro complementario más pequeño puede llamarse recibo de expresión y decisión. No modifica SPDX ni prescribe asesoramiento jurídico. Primero debe identificar el alcance: archivo, paquete, artefacto o versión, junto con una referencia estable si está disponible. Después debe decir qué clase de registro aparece: declaración de autor, información encontrada en archivo o conclusión de un creador de documento. Debe conservar la expresión literal y su fuente.

Cuando una conclusión se aparte de una declaración u observación, el recibo debe preservar el motivo. Sustituir un campo por otro borra la razón por la que alguien podría necesitar revisar el expediente. La parte de decisión debe ser separada: solo si existe una decisión real, debe nombrar responsable, versión de política, alcance y fecha. Si no existe, «no evaluado» es más preciso que una etiqueta limpia interpretada como autorización.

Así, cada participante mantiene su límite. El autor declara; quien observa registra lo que vio; quien crea el documento explica su conclusión; y quien controla una política decide dentro de su propia competencia. Nadie obtiene una facultad adicional porque todas las frases usan la misma sintaxis SPDX.

Sources

  1. SPDX — Overview
  2. SPDX Specification 2.3 — Package Information
  3. SPDX Specification 2.2.2 — File Information
  4. SPDX Specification 3.0.1 — License Expressions