Pular para o conteúdo

Contribuindo

Issues e pull requests são bem-vindos. Esta página resume a configuração local e os portões de qualidade; a fonte canônica e sempre atualizada é o CONTRIBUTING.md no repositório.

O PosterPilot é um app SvelteKit que roda no Bun.

Terminal window
bun install
cp .env.example .env # preencha PLEX_URL / PLEX_TOKEN / TMDB_KEY (ou use a interface de Configurações)
bun run db:generate # gera as migrações SQL a partir do schema do Drizzle (já commitadas)
bun run dev # http://localhost:5173

As migrações são aplicadas automaticamente na inicialização do servidor.

Toda alteração deve passar por estes antes da revisão — a CI roda os mesmos:

Terminal window
bun run check # verificação de tipos com svelte-check
bun run test # testes unitários com vitest
bun run lint # prettier --check (rode `bun run format` para corrigir automaticamente)

O projeto segue desenvolvimento orientado a testes para a lógica do servidor — escreva um teste que falha primeiro, depois a implementação. Mantenha a lógica pura e testável livre de imports de $env / $app para que possa ser testada unitariamente de forma isolada (veja os testes existentes para o padrão).

O projeto usa Conventional Commits. O prefixo de tipo dirige o changelog automatizado e o bump de versão via release-please:

  • feat: — um novo recurso (bump minor)
  • fix: — uma correção de bug (bump patch)
  • docs:, chore:, refactor:, test:, ci: — sem release por si só
  • feat!: / um rodapé BREAKING CHANGE: — bump major

Exemplo: feat(library): add genre filter.

  1. Crie um branch a partir de main.
  2. Faça alterações focadas; mantenha o diff restrito a uma única preocupação.
  3. Garanta que check, test e lint estejam verdes.
  4. Abra um PR usando o template e vincule qualquer issue relacionada.

Recursos maiores são planejados com OpenSpec sob openspec/changes/. Para uma alteração substancial, proponha uma spec primeiro, depois implemente em relação às suas tarefas. As specs de capacidade ficam sob openspec/specs/.

Nenhuma codificação é necessária para ajudar a traduzir a interface — veja Traduzindo para o fluxo de trabalho do Weblate.

PosterPilot is an independent project, not affiliated with or endorsed by Plex, Jellyfin, Emby, MediUX, Fanart.tv, TMDB, ThePosterDB, or Kometa. Trademarks belong to their respective owners. This product uses the TMDB API but is not endorsed or certified by TMDB.