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 interfaz de administración en React está en packages/admin.

Esta página te ofrece el camino más rápido hacia un entorno de desarrollo funcional. CONTRIBUTING.md es la fuente canónica de los requisitos previos, la estructura del repositorio, la política de contribución, las comprobaciones obligatorias, los changesets y los requisitos de los pull requests.

Configuración local

  1. Clona, instala y compila el espacio de trabajo.

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. Inicia 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 aplica el esquema de seed/seed.json; el bypass de desarrollo del siguiente paso también añade su contenido de ejemplo.

  3. Abre el panel de administración.

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

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

Flujo de trabajo de desarrollo

Modo de observación

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

# Terminal 1 — rebuild packages/core on change
cd packages/core && pnpm dev

# Terminal 2 — run the demo
cd demos/simple && pnpm dev

Comprobaciones

Ejecuta las comprobaciones obligatorias desde la raíz del repositorio antes de hacer commit:

pnpm typecheck    # TypeScript
pnpm lint         # full type-aware lint
pnpm format       # auto-format with oxfmt and Prettier

Pruebas

Todas las pruebas

pnpm test

Solo el núcleo

cd packages/core && pnpm test

Modo de observación

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # starts its own server

Las pruebas usan bases de datos SQLite reales en memoria en lugar de mocks de base de datos. Cada prueba recibe una base de datos nueva.

Elegir una vía de contribución

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

Las funcionalidades y las refactorizaciones requieren una Discussion aprobada por un mantenedor antes de implementarse. Los pull requests de funcionalidades sin esa aprobación se cierran. Lee la política de contribución completa antes de empezar a trabajar, para saber qué vía se aplica.

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

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