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 base de données, la gestion du schéma 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 canonique pour les prérequis, la structure du dépôt, la politique de contribution, les vérifications requises, les changesets et les exigences de pull request.

Configuration locale

  1. Cloner, installer et compiler le workspace.

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

    cd demos/simple
    pnpm dev

    La démo fonctionne sur Node.js avec SQLite à http://localhost:4321. Lors de la première requête vers une base de données vide, elle applique également le contenu d’exemple depuis seed/seed.json.

  3. Ouvrir le panneau d’administration.

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

    Pour tester le flux de configuration passkey à la place, 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 l’exécution de la démo, utilisez deux terminaux pour que le paquet se reconstruise automatiquement :

# Terminal 1 — reconstruire packages/core au changement
cd packages/core && pnpm dev

# Terminal 2 — exécuter la démo
cd demos/simple && pnpm dev

Vérifications

Exécutez les vérifications requises depuis la racine du dépôt avant de commiter :

pnpm typecheck    # TypeScript
pnpm lint         # lint complet avec reconnaissance de types
pnpm format       # auto-formatage avec oxfmt et Prettier

Tests

Tous les tests

pnpm test

Core uniquement

cd packages/core && pnpm test

Mode surveillance

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # démarre son propre serveur

Les tests utilisent de vraies bases de données SQLite en mémoire au lieu de mocks. Chaque test obtient une base de données fraîche.

Choisissez un chemin de contribution

Les corrections de bugs, la documentation et les traductions peuvent aller directement dans un pull request. Les corrections de bugs doivent inclure un test échouant 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és. Lisez la politique de contribution complète avant de commencer à travailler pour savoir quel chemin s’applique.

Les modifications de documentation doivent également suivre le guide de style de la documentation.

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