Sobre el proyecto

Open Audio Stack Registry es una especificación de registro de audio más un índice de paquetes buscable que cubre Plugins, Presets, Proyectos y Aplicaciones. Está dirigido principalmente a desarrolladores de software de audio que desean que su software sea descubrible e instalable a través de cualquier herramienta compatible con Open Audio Stack, y secundariamente a músicos y productores que instalan esos paquetes. Cómo funciona: los contribuyentes añaden archivos YAML, uno por versión de paquete, en una rama. Después del escaneo, los cambios se fusionan y GitHub Actions genera un sitio estático de GitHub Pages que contiene archivos JSON para cada parte del registro. Las herramientas de línea de comandos, aplicaciones y sitios web compatibles leen esos archivos JSON para descubrir paquetes. La API es JSON estático, por lo que los integradores no necesitan alojar infraestructura de distribución personalizada. El envío de paquetes se puede hacer de tres maneras: un formulario web para completar metadatos, un agente de codificación apuntado a AGENTS.md, o manualmente bifurcando el repositorio y añadiendo carpetas en kebab-case como src/plugins/org-name/package-name. Cada paquete incluye una captura de pantalla JPEG y una vista previa de audio FLAC, elegidos por rendimiento de carga. Las versiones siguen Semantic Versioning, por lo que un instalador puede elegir la última versión sin cambios importantes. Se proporcionan archivos YAML de ejemplo para aplicaciones, plugins, presets y proyectos, y la especificación documenta campos de plugins, formatos y tipos, así como campos de archivos, formatos, recomendaciones y tipos. La validación se ejecuta localmente mediante npm install y npm run dev:validate con una ruta al archivo YAML. Informa problemas como campos demasiado largos, y verifica el tamaño del archivo y sha256 contra la descarga real. El tamaño indica a los usuarios cuán grande es una descarga; sha256 verifica que el archivo descargado coincida con la distribución prevista. Los desajustes imprimen los valores recibidos y esperados para que la URL o los metadatos puedan corregirse. Las solicitudes de extracción luego ejecutan pruebas automatizadas, validación y escaneo de virus antes de fusionarse. Para paquetes con binarios comprometidos directamente en un repositorio y sin lanzamientos de GitHub, la URL del archivo debe apuntar a un commit específico en lugar de una rama, porque las URLs de archivo de rama cambian el hash en cada push. El README muestra cómo obtener el SHA del commit con la CLI de GitHub y el formato de URL de archivo fijado, luego re-ejecutar la validación para actualizar sha256 y tamaño. Los proyectos que usan la especificación o API pueden enlazar de vuelta con una insignia proporcionada. El registro está construido con Node.js 20.x, TypeScript 5.x, eslint 9.x, prettier 3.x y vitest 3.x, con scripts npm para lint, format, dev, test, build y start. Los lanzamientos se versionan con etiquetas git y se publican automáticamente en GitHub Pages. El registro está destinado principalmente a paquetes gratuitos de código abierto construidos multiplataforma para Linux, Mac y Windows; los paquetes que no cumplan las pautas pueden ser rechazados o eliminados.