为 EmDash 做贡献

本页内容

EmDash 是一个 pnpm monorepo。主包是 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 时,使用两个终端使包自动重建:

# 终端 1 — 更改时重建 packages/core
cd packages/core && pnpm dev

# 终端 2 — 运行演示
cd demos/simple && pnpm dev

检查

提交前从仓库根目录运行必需的检查:

pnpm typecheck    # TypeScript
pnpm lint         # 完整的类型感知 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 中。