🚀 Skill: Obsidian Plugin Release & Store

Resumen de la Skill

Procedimiento completo y estandarizado para compilar en producción, validar criterios de admisión, realizar releases en GitHub y distribuir actualizaciones en la tienda oficial de Obsidian Community Plugins.


🚦 1. Quality Gates Previos al Lanzamiento

Ejecutar siempre en la raíz del plugin:

# 1. Linter y formato de código (Biome)
pnpm biome check .
 
# 2. Verificación de tipos TypeScript estricta
pnpm run typecheck
 
# 3. Pruebas unitarias y de integración
pnpm test

🔢 2. Sincronización de Versión y Compilación

  1. Actualizar número de versión semántica x.y.z en:
    • package.json → "version": "x.y.z"
    • manifest.json → "version": "x.y.z"
  2. Compilar paquete para producción:
    pnpm run build

🧪 3. Despliegue en Bóveda Local y Recarga en Caliente

Antes de publicar en la nube, probar la versión compilada en tu Obsidian en vivo:

# Copiar main.js, manifest.json y styles.css a la bóveda
node scripts/deploy.mjs /home/alexwce/Documentos/Obsidian/ryukami-labs
 
# Recargar el plugin en caliente sin cerrar Obsidian
obsidian plugin:reload id=git-facil
 
# Verificar que no haya errores en consola
obsidian dev:errors

🏷️ 4. Publicación del Release en GitHub

  1. Confirmar y subir cambios de código a GitHub:
    git add -A && git commit -m "feat: resumen de cambios (vX.Y.Z)" && git push origin main
  2. Crear GitHub Release adjuntando los 3 assets individuales sin comprimir:
    gh release create X.Y.Z main.js manifest.json styles.css --title "GitFacil X.Y.Z" --notes "Notas de versión..."
  3. Validar con el script de la tienda comunitaria:
    pnpm run validate:submission

📦 5. ¿Cómo se actualiza la Tienda de Obsidian?

  • Plugins ya listados: Obsidian consulta directamente la API de GitHub Releases. Cuando detecta un nuevo tag semver con main.js y manifest.json, distribuye automáticamente la actualización a todos los usuarios.
  • Cambios de descripción / metadata: Se realiza mediante Pull Request editando community-plugins.json en el repositorio oficial obsidianmd/obsidian-releases.