Contribuer à EmDash

Sur cette page

EmDash est un monorepo pnpm. Le paquet principal est packages/core, publié sous le nom emdash ; il contient l’intégration Astro, l’API REST, la couche de base de données, la gestion des schémas et le système de plugins. L’interface d’administration React se trouve dans packages/admin.

Cette page vous donne le chemin le plus rapide vers un environnement de développement fonctionnel. CONTRIBUTING.md est la source de référence pour les prérequis, l’organisation du dépôt, la politique de contribution, les vérifications obligatoires, les changesets et les exigences relatives aux pull requests.

Configuration locale

  1. Clonez, installez et compilez l’espace de travail.

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. Démarrez la démo de développement principale.

    cd demos/simple
    pnpm dev

    La démo s’exécute sur Node.js avec SQLite à l’adresse http://localhost:4321. À la première requête, elle applique le schéma de seed/seed.json ; le contournement de développement de l’étape suivante ajoute aussi son contenu d’exemple.

  3. Ouvrez le panneau d’administration.

    Pour la configuration locale la plus rapide, ouvrez le contournement de développement. Il exécute les migrations, crée un administrateur de développement, vous connecte et vous redirige vers le panneau d’administration.

    Pour tester plutôt le parcours de configuration par passkey, ouvrez le panneau d’administration. L’assistant de configuration crée la base de données, exécute les migrations et vous invite à créer un compte administrateur.

Flux de travail de développement

Mode surveillance

Lorsque vous modifiez packages/core pendant que la démo s’exécute, utilisez deux terminaux afin que le paquet soit recompilé automatiquement :

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

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

Vérifications

Exécutez les vérifications obligatoires depuis la racine du dépôt avant de faire un commit :

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

Tests

Tous les tests

pnpm test

Noyau uniquement

cd packages/core && pnpm test

Mode surveillance

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # starts its own server

Les tests utilisent de vraies bases de données SQLite en mémoire plutôt que des mocks de base de données. Chaque test dispose d’une base de données neuve.

Choisir une voie de contribution

Les corrections de bugs, la documentation et les traductions peuvent aller directement dans une pull request. Les corrections de bugs doivent inclure un test en échec qui reproduit le problème. Les contributions de traduction suivent le flux de travail de traduction.

Les fonctionnalités et les refactorisations nécessitent une Discussion approuvée par un mainteneur avant l’implémentation. Les pull requests de fonctionnalités sans cette approbation sont fermées. Lisez l’intégralité de la politique de contribution avant de commencer à travailler, afin de savoir quelle voie s’applique.

Les modifications de la documentation doivent aussi respecter le guide de style de la documentation.

Pour les principaux chemins d’exécution à travers EmDash, lisez Architecture (fonctionnement interne). Les motifs et invariants au niveau du code sont documentés dans AGENTS.md.