Sobre o projeto

O Open Audio Stack Registry é uma especificação de registo de áudio mais um índice de pacotes pesquisável que abrange Plugins, Presets, Projetos e Aplicações. Destina-se principalmente a programadores de software de áudio que querem que o seu software seja detetável e instalável através de qualquer ferramenta compatível com o Open Audio Stack, e secundariamente a músicos e produtores que instalam esses pacotes. Como funciona: os contribuidores adicionam ficheiros YAML, um por versão de pacote, num ramo. Após a análise, as alterações são integradas e o GitHub Actions gera um site estático no GitHub Pages contendo ficheiros JSON para cada parte do registo. Ferramentas de linha de comandos, aplicações e sites compatíveis leem esses ficheiros JSON para descobrir pacotes. A API é JSON estático, pelo que os integradores não precisam de alojar infraestrutura de distribuição personalizada. A submissão de pacotes pode ser feita de três formas: um formulário web para preencher os metadados, um agente de programação apontado para AGENTS.md, ou manualmente ao fazer fork do repositório e adicionar pastas em kebab-case como src/plugins/org-name/package-name. Cada pacote inclui uma captura de ecrã JPEG e uma pré-visualização de áudio FLAC, escolhidas pelo desempenho de carregamento. As versões seguem o Semantic Versioning, para que um instalador possa escolher a versão mais recente sem quebras. São fornecidos ficheiros YAML de exemplo para aplicações, plugins, presets e projetos, e a especificação documenta os campos, formatos e tipos de plugins, bem como os campos, formatos, recomendações e tipos de ficheiros. A validação é executada localmente através de npm install e npm run dev:validate com um caminho para o ficheiro YAML. Reporta problemas como campos demasiado longos e verifica o tamanho do ficheiro e o sha256 em relação à transferência real. O tamanho indica aos utilizadores a dimensão de uma transferência; o sha256 verifica se o ficheiro transferido corresponde à distribuição pretendida. As divergências imprimem os valores recebidos e esperados para que o URL ou os metadados possam ser corrigidos. Os pull requests executam então testes automatizados, validação e análise de vírus antes da integração. Para pacotes com binários comprometidos diretamente num repositório e sem lançamentos no GitHub, o URL do ficheiro deve apontar para um commit específico em vez de um ramo, porque os URLs de arquivo de ramo mudam de hash a cada push. O README mostra como obter o SHA do commit com o GitHub CLI e o formato de URL de arquivo fixado, e depois voltar a executar a validação para atualizar o sha256 e o tamanho. Os projetos que utilizam a especificação ou a API podem ligar de volta com um badge fornecido. O registo é construído com Node.js 20.x, TypeScript 5.x, eslint 9.x, prettier 3.x e vitest 3.x, com scripts npm para lint, format, dev, test, build e start. Os lançamentos são versionados com tags git e publicados automaticamente no GitHub Pages. O registo destina-se principalmente a pacotes gratuitos de código aberto construídos de forma multiplataforma para Linux, Mac e Windows; os pacotes que não cumpram as diretrizes podem ser rejeitados ou removidos.