Una actualización de las herramientas Python de SPDX

Contenidos

Progreso con las herramientas Python de SPDX

Los debates sobre el desarrollo y la orientación de las herramientas Python de SPDX suelen tener lugar en las reuniones semanales o en grupos más pequeños y no siempre son visibles para las partes interesadas. Esta publicación de blog tiene como objetivo llenar ese vacío y proporcionar una versión condensada de lo que se ha hecho y lo que está por venir. También debería mostrar lo que nosotros (TNG) estamos haciendo en un proyecto patrocinado por OpenSSF. Será el primero de una serie de publicaciones de este tipo.

la primera limpieza

Dado que las herramientas de Python solo se mantuvieron nominalmente durante aproximadamente un año, se había acumulado una gran cantidad de «atrasos», tanto para solicitudes de extracción abiertas (abreviatura: PR) como para problemas abiertos. Si bien no fue la parte más emocionante de trabajar en las herramientas de Python, completar las relaciones públicas y clasificar los problemas siguió siendo un primer paso esencial para actualizar las herramientas de Python. En los últimos dos meses se cerraron 48 RP, 21 de los cuales llevan abiertos hasta varios años. En algunos casos, los colaboradores originales terminaron sus publicaciones después de una revisión; en otros nos hicimos cargo y terminamos el trabajo que habían comenzado. Algunos de estos PR eran pequeños, otros grandes y conflictivos, y es un alivio para todos que ya no es necesario escanear más de 10 PR en busca de posibles conflictos o superposiciones antes de hacer un pequeño cambio. Por el lado de las emisiones abiertas, el número se redujo de 51 a… 52. Sin embargo, para poner estos números en una perspectiva muy necesaria, se cerraron 25 números «antiguos» (creados antes de septiembre) y 19 números «nuevos». Se descubrieron muchos problemas nuevos mientras se trabajaba en las herramientas y se abordarán junto con los problemas anteriores restantes de manera oportuna. No se ven como una prioridad ahora y son más fáciles de resolver después de algunas refactorizaciones muy necesarias (más sobre eso más adelante).

Compatibilidad con SPDX v2.3

Un problema importante con las herramientas de Python ha sido durante mucho tiempo la falta de soporte para SPDX v2.3, o incluso algunos aspectos de v2.2 y v2.1 también. Ahora estamos en una fase en la que se admiten todas las propiedades v2.3, v2.2 y v2.1 (consulte las advertencias a continuación). ¡Los evaluadores son bienvenidos! Dado que las herramientas de Python no admiten el manejo específico de la versión, la validación se actualizó para seguir la especificación v2.3. La introducción del manejo específico de la versión es la principal motivación para refactorizar las herramientas.

advertencias:

  • Compatibilidad con RDF: JSON surgió como el claro ganador de la discusión sobre la importancia de los diversos formatos de serialización, seguido de etiqueta/valor debido a su uso generalizado. Aunque RDF es bastante completo en su especificación, puede ser engorroso de usar y su pronunciada curva de aprendizaje desalienta a muchos usuarios potenciales a elegir el formato. Por estos motivos, hemos decidido posponer la implementación de la compatibilidad total con RDF para v2.3 y, en su lugar, centrarnos en preparar las herramientas de Python para el futuro.
  • Términos de licencia: el soporte completo para los términos de licencia es un problema de larga data que aún no se ha resuelto. Ofrecemos la opción de utilizar el proyecto de impresión de licencia nexB para esto.

preparación para el futuro

Solo déjalo ir ya

PyPI se lanzó por última vez hace más de tres años y desde entonces se han implementado muchos cambios. Es hora de un nuevo lanzamiento y ya hay un nuevo candidato de lanzamiento brillante para 0.7.0. Queremos que el lanzamiento esté libre de errores, ¡así que siempre son bienvenidos más probadores! Siéntase libre de probar cosas y ver si su caso de uso personal está cubierto. Además de proporcionar correcciones de errores y nuevas funciones, esta versión nos permite comenzar con algunos cambios importantes:

Muévete rápido y rompe cosas

Como se indicó varias veces en esta publicación de blog, está pendiente una importante refactorización de gran parte de las herramientas de Python. Los objetivos principales son:

  • Esto hace que las herramientas de Python sean fáciles de mantener y ampliar.
  • Proporcionar una API bien documentada y fácil de usar para los usuarios de bibliotecas
  • Preparar las herramientas para adaptarse a la especificación SPDX v3 cuando se publique
  • permite el manejo específico de la versión de documentos SPDX, en particular, la validación específica de la versión

Se adjunta a este número un esbozo de la arquitectura prevista. El trabajo de refactorización ya comenzó en una rama de funciones dedicada (para evitar colisiones con el lanzamiento): una primera versión del nuevo modelo de datos está lista (problema) y los problemas relacionados con la capa de validación y el análisis de JSON están en Work.

Estamos felices de saber de ellos

Y aquí es donde entras tú: queremos construir una comunidad vibrante a tu alrededor. Herramientas de Python, ¡así que envíenos sus comentarios en GitHub! Háganos saber lo que piensa de las funciones existentes, los próximos cambios/RP y qué funciones aún extraña mucho. Por supuesto, también agradecemos cualquier aporte que desee aportar, ya sea código real, archivos de prueba o casos de uso especiales que aún tenemos que considerar. Si desea hablar con nosotros directamente, únase a nuestra reunión de sincronización semanal todos los jueves a las 4:30 p. m. GMT (5:00 p. m. GMT el primer jueves de cada mes). O envíenos un correo electrónico a la lista de correo de SPDX-Tech para concertar una reunión en otro momento.

referencias

Para su comodidad, aquí se repiten algunos enlaces importantes:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.