Contribuindo para o EmDash

Nesta página

O EmDash é um monorepo pnpm. O pacote principal é packages/core, publicado como emdash; ele contém a integração Astro, a API REST, a camada de banco de dados, o gerenciamento de esquema e o sistema de plugins. A interface de administração React fica em packages/admin.

Esta página oferece o caminho mais rápido para um ambiente de desenvolvimento funcional. CONTRIBUTING.md é a fonte canônica para pré-requisitos, estrutura do repositório, política de contribuição, verificações obrigatórias, changesets e requisitos de pull request.

Configuração local

  1. Clonar, instalar e compilar o workspace.

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. Iniciar a demo de desenvolvimento principal.

    cd demos/simple
    pnpm dev

    A demo roda em Node.js com SQLite em http://localhost:4321. Na primeira requisição para um banco de dados vazio, ela também aplica o conteúdo de exemplo de seed/seed.json.

  3. Abrir o painel de administração.

    Para a configuração local mais rápida, abra o bypass de desenvolvimento. Ele executa migrações, cria um administrador de desenvolvimento, faz seu login e redireciona para o painel de administração.

    Para testar o fluxo de configuração com passkey, abra o painel de administração. O assistente de configuração cria o banco de dados, executa migrações e solicita que você crie uma conta de administrador.

Fluxo de trabalho de desenvolvimento

Modo observação

Quando você altera packages/core enquanto executa a demo, use dois terminais para que o pacote seja reconstruído automaticamente:

# Terminal 1 — reconstruir packages/core ao mudar
cd packages/core && pnpm dev

# Terminal 2 — executar a demo
cd demos/simple && pnpm dev

Verificações

Execute as verificações obrigatórias a partir da raiz do repositório antes de fazer commit:

pnpm typecheck    # TypeScript
pnpm lint         # lint completo com reconhecimento de tipos
pnpm format       # auto-formatação com oxfmt e Prettier

Testes

Todos os testes

pnpm test

Apenas Core

cd packages/core && pnpm test

Modo observação

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # inicia seu próprio servidor

Os testes usam bancos de dados SQLite em memória reais em vez de mocks. Cada teste recebe um banco de dados limpo.

Escolha um caminho de contribuição

Correções de bugs, documentação e traduções podem ir diretamente para um pull request. Correções de bugs devem incluir um teste que falha e reproduz o problema. Contribuições de tradução seguem o fluxo de trabalho de tradução.

Funcionalidades e refatorações exigem uma Discussão aprovada por um mantenedor antes da implementação. Pull requests de funcionalidades sem essa aprovação são fechados. Leia a política de contribuição completa antes de iniciar o trabalho para saber qual caminho se aplica.

Alterações na documentação também devem seguir o guia de estilo da documentação.

Para os caminhos de execução principais através do EmDash, leia Arquitetura (internos). Padrões e invariantes no nível do código estão documentados em AGENTS.md.