Contribuir a EmDash

En esta página

EmDash es un monorepo de pnpm. El paquete principal es packages/core, publicado como emdash; contiene la integración de Astro, la API REST, la capa de base de datos, la gestión de esquemas y el sistema de plugins. La UI de administración React se encuentra en packages/admin.

Esta página te da el camino más rápido a un entorno de desarrollo funcional. CONTRIBUTING.md es la fuente canónica para prerrequisitos, estructura del repositorio, política de contribución, verificaciones requeridas, changesets y requisitos de pull request.

Configuración local

  1. Clonar, instalar y compilar el workspace.

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. Iniciar la demo de desarrollo principal.

    cd demos/simple
    pnpm dev

    La demo se ejecuta en Node.js con SQLite en http://localhost:4321. En la primera solicitud a una base de datos vacía, también aplica el contenido de ejemplo de seed/seed.json.

  3. Abrir el panel de administración.

    Para la configuración local más rápida, abre el bypass de desarrollo. Ejecuta migraciones, crea un administrador de desarrollo, te inicia sesión y redirige al panel de administración.

    Para probar el flujo de configuración con passkey en su lugar, abre el panel de administración. El asistente de configuración crea la base de datos, ejecuta migraciones y te solicita crear una cuenta de administrador.

Flujo de trabajo de desarrollo

Modo observación

Cuando cambias packages/core mientras ejecutas la demo, usa dos terminales para que el paquete se reconstruya automáticamente:

# Terminal 1 — reconstruir packages/core al cambiar
cd packages/core && pnpm dev

# Terminal 2 — ejecutar la demo
cd demos/simple && pnpm dev

Verificaciones

Ejecuta las verificaciones requeridas desde la raíz del repositorio antes de hacer commit:

pnpm typecheck    # TypeScript
pnpm lint         # lint completo con reconocimiento de tipos
pnpm format       # auto-formatear con oxfmt y Prettier

Tests

Todos los tests

pnpm test

Solo Core

cd packages/core && pnpm test

Modo observación

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # inicia su propio servidor

Los tests usan bases de datos SQLite en memoria reales en lugar de mocks. Cada test obtiene una base de datos limpia.

Elige un camino de contribución

Las correcciones de errores, documentación y traducciones pueden ir directamente a un pull request. Las correcciones de errores deben incluir un test que falle y reproduzca el problema. Las contribuciones de traducción siguen el flujo de trabajo de traducción.

Las características y refactorizaciones requieren una Discusión aprobada por un mantenedor antes de la implementación. Los pull requests de características sin esa aprobación se cierran. Lee la política de contribución completa antes de comenzar a trabajar para saber qué camino aplica.

Los cambios de documentación también deben seguir la guía de estilo de documentación.

Para las rutas de ejecución principales a través de EmDash, lee Arquitectura (internos). Los patrones e invariantes a nivel de código están documentados en AGENTS.md.