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를 변경할 때는 패키지가 자동으로 다시 빌드되도록 터미널 두 개를 사용하세요.

# 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

테스트는 데이터베이스 목(mock) 대신 실제 인메모리 SQLite 데이터베이스를 사용합니다. 각 테스트는 새 데이터베이스를 받습니다.

기여 경로 선택

버그 수정, 문서, 번역은 바로 풀 리퀘스트로 제출할 수 있습니다. 버그 수정에는 문제를 재현하는 실패하는 테스트가 포함되어야 합니다. 번역 기여는 번역 워크플로를 따르세요.

기능과 리팩터링은 구현하기 전에 메인테이너가 승인한 Discussion이 필요합니다. 그 승인이 없는 기능 풀 리퀘스트는 닫힙니다. 어떤 경로가 적용되는지 알 수 있도록, 작업을 시작하기 전에 기여 정책 전문을 읽으세요.

문서 변경은 문서 스타일 가이드도 따라야 합니다.

EmDash를 관통하는 주요 실행 경로는 아키텍처 (내부 구조)를 읽어 보세요. 코드 수준의 패턴과 불변 조건은 AGENTS.md에 문서화되어 있습니다.