このサイトは非公式の日本語訳です。Cloudflare・EmDashプロジェクトが運営するサイトではありません。

このページで分かること

  • EmDashのリポジトリの構成(pnpmのモノレポ、packages/corepackages/admin)と、CONTRIBUTING.md が正本であること
  • ローカルの開発環境の作り方(クローン、ビルド、デモの起動、管理画面を開く)と、ウォッチモード・必須のチェック・テストの実行方法
  • 貢献の種類ごとの進め方(バグ修正・ドキュメント・翻訳は直接プルリクエスト、機能追加とリファクタリングはメンテナーが承認したDiscussionが先に必要)
難易度
上級
読む時間
2分
このページの目次

EmDashは、pnpmのモノレポです。中心になるパッケージは packages/core で、emdash として公開されています。このパッケージには、Astroのインテグレーション、REST API、データベース層、スキーマの管理、プラグインの仕組みが含まれています。Reactで作られた管理画面は 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 に記載されています。

本サイトの補足 やさしい解説

WordPress本体の開発に参加するときと同じく、EmDash本体への貢献は、公式リポジトリのコードを手元で動かすところから始まります。このページの手順では、リポジトリをクローンしてビルドし、demos/simple のデモを起動します。バグ修正・ドキュメント・翻訳はそのままプルリクエストを送れますが、機能追加とリファクタリングは、先にDiscussionでメンテナーの承認を得る必要があります。承認のない機能追加のプルリクエストはクローズされるので、作業の前に CONTRIBUTING.md を読みます。