EmDash への貢献

このページ

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

このページは、動作する開発環境への最短パスを提供します。CONTRIBUTING.md が、前提条件、リポジトリレイアウト、貢献ポリシー、必要なチェック、チェンジセット、プルリクエスト要件の正式な情報源です。

ローカルセットアップ

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

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. プライマリ開発デモを起動する。

    cd demos/simple
    pnpm dev

    デモは http://localhost:4321 で SQLite を使用した Node.js 上で実行されます。空のデータベースへの最初のリクエスト時に、seed/seed.json のサンプルコンテンツも適用されます。

  3. 管理パネルを開く。

    最速のローカルセットアップには、開発バイパスを開きます。マイグレーションを実行し、開発管理者を作成し、サインインして管理パネルにリダイレクトします。

    代わりにパスキーセットアップフローをテストするには、管理パネルを開きます。セットアップウィザードがデータベースを作成し、マイグレーションを実行し、管理者アカウントの作成を促します。

開発ワークフロー

ウォッチモード

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

# ターミナル 1 — 変更時に packages/core をリビルド
cd packages/core && pnpm dev

# ターミナル 2 — デモを実行
cd demos/simple && pnpm dev

チェック

コミット前にリポジトリルートから必要なチェックを実行します:

pnpm typecheck    # TypeScript
pnpm lint         # 完全な型認識リント
pnpm format       # oxfmt と Prettier で自動フォーマット

テスト

全テスト

pnpm test

Core のみ

cd packages/core && pnpm test

ウォッチモード

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # 独自のサーバーを起動

テストはデータベースモックの代わりに実際のインメモリ SQLite データベースを使用します。各テストは新しいデータベースを取得します。

貢献パスを選ぶ

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

機能とリファクタリングは、実装前にメンテナーが承認したディスカッションが必要です。その承認なしの機能プルリクエストはクローズされます。作業を始める前に完全な貢献ポリシーを読んで、どのパスが適用されるか確認してください。

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

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