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

# 터미널 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에 문서화되어 있습니다.