EmDash への貢献

このページ

EmDash は pnpm モノレポです。メインパッケージは packages/core で、emdash として公開されています。Astro インテグレーション、REST API、データベースレイヤー、スキーマ管理、プラグインシステムが含まれています。React 製の管理画面 UI は packages/admin にあります。

このページでは、動作する開発環境を最短で用意する方法を説明します。前提条件、リポジトリの構成、コントリビューションポリシー、必須のチェック、changeset、プルリクエストの要件については、CONTRIBUTING.md が正式な情報源です。

ローカルセットアップ

  1. ワークスペースをクローンし、インストールしてビルドします。

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. 主要な開発用デモを起動します。

    cd demos/simple
    pnpm dev

    このデモは Node.js 上で SQLite を使って動作し、http://localhost:4321 で提供されます。最初のリクエスト時に seed/seed.json のスキーマが適用されます。次の手順の開発用バイパスでは、サンプルコンテンツも追加されます。

  3. 管理画面を開きます。

    最も手早くローカル環境をセットアップするには、開発用バイパスを開きます。マイグレーションを実行し、開発用の管理者を作成してサインインし、管理画面にリダイレクトします。

    代わりにパスキーのセットアップフローを試す場合は、管理画面を開いてください。セットアップウィザードがデータベースを作成し、マイグレーションを実行して、管理者アカウントの作成を促します。

開発ワークフロー

ウォッチモード

デモを実行しながら packages/core を変更する場合は、パッケージが自動的に再ビルドされるように、2 つのターミナルを使用します。

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

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

チェック

コミットする前に、リポジトリのルートから必須のチェックを実行します。

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

テスト

すべてのテスト

pnpm test

コアのみ

cd packages/core && pnpm test

ウォッチモード

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # starts its own server

テストでは、データベースのモックではなく、実際のインメモリ SQLite データベースを使用します。各テストには新しいデータベースが用意されます。

貢献の進め方を選ぶ

バグ修正、ドキュメント、翻訳は、直接プルリクエストにできます。バグ修正には、問題を再現する失敗するテストを含める必要があります。翻訳の貢献は、翻訳ワークフローに従ってください。

機能とリファクタリングは、実装の前にメンテナーが承認した Discussion が必要です。その承認がない機能のプルリクエストはクローズされます。どの進め方が当てはまるかを把握できるよう、作業を始める前にコントリビューションポリシーの全文を読んでください。

ドキュメントの変更は、ドキュメントスタイルガイドにも従う必要があります。

EmDash の主な実行パスについては、アーキテクチャ(内部構造)を参照してください。コードレベルのパターンと不変条件は、AGENTS.md に記載されています。