コンテンツにスキップ

貢献

Issue とプルリクエストを歓迎します。このページはローカルセットアップと品質ゲートを要約した ものです。正規かつ常に最新の情報源は、リポジトリ内の CONTRIBUTING.md です。

PosterPilot は Bun 上で動作する SvelteKit アプリです。

Terminal window
bun install
cp .env.example .env # PLEX_URL / PLEX_TOKEN / TMDB_KEY を記入(または設定 UI を使用)
bun run db:generate # Drizzle スキーマから SQL マイグレーションを生成(すでにコミット済み)
bun run dev # http://localhost:5173

マイグレーションはサーバー起動時に自動的に適用されます。

すべての変更は、レビュー前にこれらを通過しなければなりません — CI も同じものを実行します:

Terminal window
bun run check # svelte-check による型チェック
bun run test # vitest ユニットテスト
bun run lint # prettier --check(自動修正するには `bun run format` を実行)

このプロジェクトは、サーバーロジックについてはテスト駆動開発に従います — まず失敗するテストを 書き、それから実装します。純粋でテスト可能なロジックを $env / $app のインポートから 切り離して保ち、分離してユニットテストできるようにしてください(パターンについては既存の テストを参照)。

このプロジェクトは Conventional Commits を使用します。 タイプのプレフィックスが、release-please を通じて自動の変更履歴とバージョンの引き上げを駆動 します:

  • feat: — 新機能(マイナーバンプ)
  • fix: — バグ修正(パッチバンプ)
  • docs:chore:refactor:test:ci: — それ単体ではリリースなし
  • feat!: / BREAKING CHANGE: フッター — メジャーバンプ

例:feat(library): add genre filter

  1. main からブランチを作成します。
  2. 焦点を絞った変更を行います。diff を 1 つの関心事に限定して保ちます。
  3. checktestlint がグリーンであることを確認します。
  4. テンプレートを使って PR を開き、関連する Issue をリンクします。

より大きな機能は openspec/changes/ 下で OpenSpec を使って計画されます。実質的な変更の場合は、 まず仕様を提案し、それからそのタスクに対して実装します。ケイパビリティ仕様は openspec/specs/ 下にあります。

UI の翻訳を手伝うのにコーディングは不要です — 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.