Contribuire a EmDash

In questa pagina

EmDash è un monorepo pnpm. Il pacchetto principale è packages/core, pubblicato come emdash; contiene l’integrazione Astro, l’API REST, il livello del database, la gestione dello schema e il sistema di plugin. L’interfaccia di amministrazione in React si trova in packages/admin.

Questa pagina ti indica il percorso più rapido verso un ambiente di sviluppo funzionante. CONTRIBUTING.md è la fonte di riferimento per prerequisiti, struttura del repository, policy di contribuzione, controlli obbligatori, changeset e requisiti delle pull request.

Configurazione locale

  1. Clona, installa e compila il workspace.

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. Avvia la demo di sviluppo principale.

    cd demos/simple
    pnpm dev

    La demo gira su Node.js con SQLite all’indirizzo http://localhost:4321. Alla prima richiesta applica lo schema di seed/seed.json; il bypass di sviluppo del passo successivo aggiunge anche i suoi contenuti di esempio.

  3. Apri il pannello di amministrazione.

    Per la configurazione locale più rapida, apri il bypass di sviluppo. Esegue le migrazioni, crea un amministratore di sviluppo, ti fa accedere e ti reindirizza al pannello di amministrazione.

    Per testare invece il flusso di configurazione con passkey, apri il pannello di amministrazione. La procedura guidata di configurazione crea il database, esegue le migrazioni e ti chiede di creare un account amministratore.

Flusso di lavoro di sviluppo

Modalità watch

Quando modifichi packages/core mentre la demo è in esecuzione, usa due terminali in modo che il pacchetto venga ricompilato automaticamente:

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

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

Controlli

Esegui i controlli obbligatori dalla radice del repository prima di fare il commit:

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

Test

Tutti i test

pnpm test

Solo core

cd packages/core && pnpm test

Modalità watch

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # starts its own server

I test usano database SQLite reali in memoria invece di mock del database. Ogni test riceve un database nuovo.

Scegliere un percorso di contribuzione

Correzioni di bug, documentazione e traduzioni possono andare direttamente in una pull request. Le correzioni di bug devono includere un test che fallisce e riproduce il problema. I contributi di traduzione seguono il flusso di lavoro di traduzione.

Funzionalità e refactoring richiedono una Discussion approvata da un maintainer prima dell’implementazione. Le pull request di funzionalità senza tale approvazione vengono chiuse. Leggi la policy di contribuzione completa prima di iniziare a lavorare, così saprai quale percorso si applica.

Anche le modifiche alla documentazione devono seguire la guida di stile della documentazione.

Per i principali percorsi di esecuzione attraverso EmDash, leggi Architettura (interni). I pattern e gli invarianti a livello di codice sono documentati in AGENTS.md.