RFC-0006: SDK, plantilla oficial y publicación para terceros
RFCPropuesta futura. No existe en NOPAL y no forma parte de la API oficial.
Borrador para discusión
Este RFC lo redacta el proyecto de documentación a partir de los problemas verificados en el código. No es una decisión del autor de NOPAL.
Problema
- Hoy no existe un SDK: lo que hay es un sistema de plugins sin API versionada.
- No hay una plantilla oficial. El tutorial y su ejemplo se escribieron para esta documentación.
- No hay forma de que un tercero publique un plugin. Para aparecer en la Galería, su entrada debe añadirse al
plugin_catalog.jsondel core mediante un cambio aceptado. Ver instalación y Galería. - No hay distinción entre plugins oficiales y de la comunidad, ni garantías de calidad.
- El catálogo anuncia plugins que no existen (
coming_soon).
Propuesta
Depende de varios RFC: 0001, 0002, 0003 y 0005. No conviene llamar «SDK» a nada hasta que la API de RFC-0001 exista.
- Repositorio de plantilla (
nopal-plugin-template) a partir del ejemplo del tutorial, con pruebas, CI y un README que cumpla el estándar de documentación. - Un nombre y un alcance para el SDK: la API pública de RFC-0001, su documentación y la plantilla.
- Un índice de plugins de la comunidad: una lista, mantenida por el proyecto, de repositorios con el commit revisado, separada del catálogo oficial.
- Dos niveles en la Galería: Oficial y Comunidad, con una advertencia visible en el segundo (los plugins no están aislados; ver RFC-0002).
- Requisitos de aceptación para figurar en la Galería: manifiesto válido,
plugin_apideclarado, documentación mínima, pruebas de compatibilidad y licencia compatible. - Instalar fijando un commit, no «la punta de la rama», para que una actualización no cambie lo revisado.
Alternativas
- Mantener el catálogo curado y aceptar plugins de terceros solo por cambio al core (hoy).
- Instalación libre por URL, sin índice. Máxima libertad, mínima protección: es el modelo que los avisos de seguridad actuales intentan evitar.
Impacto en plugins existentes
Los plugins oficiales pasarían a ser el primer consumidor de la plantilla y de la API pública.
Compatibilidad y migración
El catálogo actual seguiría siendo el nivel Oficial.
Preguntas abiertas
- ¿Quién revisa los plugins de la comunidad y con qué criterios?
- ¿Se admiten plugins de pago? Hoy los rechaza el core porque falta el servidor de licencias.
Estado
draft. No se ha implementado nada de esto.