Aller au contenu

Contribuer

Les issues et les pull requests sont les bienvenues. Cette page résume l’installation locale et les contrôles qualité ; la source canonique, toujours à jour, est le fichier CONTRIBUTING.md du dépôt.

PosterPilot est une application SvelteKit qui s’exécute avec Bun.

Terminal window
bun install
cp .env.example .env # fill PLEX_URL / PLEX_TOKEN / TMDB_KEY (or use the Settings UI)
bun run db:generate # generate SQL migrations from the Drizzle schema (already committed)
bun run dev # http://localhost:5173

Les migrations s’appliquent automatiquement au démarrage du serveur.

Chaque changement doit passer ces contrôles avant relecture — la CI exécute les mêmes :

Terminal window
bun run check # svelte-check type checking
bun run test # vitest unit tests
bun run lint # prettier --check (run `bun run format` to auto-fix)

Le projet suit le développement piloté par les tests pour la logique serveur — écrivez d’abord un test qui échoue, puis l’implémentation. Gardez la logique pure et testable exempte d’imports $env / $app afin qu’elle puisse être testée unitairement de manière isolée (voir les tests existants pour le modèle à suivre).

Le projet utilise les Conventional Commits. Le préfixe de type pilote le changelog automatisé et l’incrément de version via release-please :

  • feat: — une nouvelle fonctionnalité (incrément mineur)
  • fix: — une correction de bug (incrément de correctif)
  • docs:, chore:, refactor:, test:, ci: — pas de publication à eux seuls
  • feat!: / un pied de message BREAKING CHANGE: — incrément majeur

Exemple : feat(library): add genre filter.

  1. Créez une branche à partir de main.
  2. Faites des changements ciblés ; limitez le diff à une seule préoccupation.
  3. Vérifiez que check, test et lint passent au vert.
  4. Ouvrez une pull request en utilisant le modèle et liez toute issue associée.

Les fonctionnalités plus importantes sont planifiées avec OpenSpec sous openspec/changes/. Pour un changement conséquent, proposez d’abord une spec, puis implémentez selon ses tâches. Les specs de capacités se trouvent sous openspec/specs/.

Aucune compétence en programmation n’est requise pour aider à traduire l’interface — voir Traduction pour le flux de travail 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.