贡献
欢迎提交问题和拉取请求。本页总结了本地搭建和
质量检查;权威且始终最新的来源是仓库中的
CONTRIBUTING.md。
PosterPilot 是一个运行在 Bun 上的 SvelteKit 应用。
bun installcp .env.example .env # 填写 PLEX_URL / PLEX_TOKEN / TMDB_KEY(或使用设置界面)bun run db:generate # 从 Drizzle schema 生成 SQL 迁移(已提交)bun run dev # http://localhost:5173迁移会在服务器启动时自动应用。
每个更改在审查前都必须通过这些检查——CI 运行的也是同样的检查:
bun run check # svelte-check 类型检查bun run test # vitest 单元测试bun run lint # prettier --check(运行 `bun run format` 可自动修复)对于服务器逻辑,项目遵循测试驱动开发——先编写一个失败的
测试,然后再编写实现。保持纯粹、可测试的逻辑不含
$env / $app 导入,以便它可以被隔离进行单元测试(参见现有
测试中的模式)。
项目使用 Conventional Commits。 类型前缀驱动通过 release-please 进行的自动化变更日志和版本号递增:
feat:— 一个新功能(minor 递增)fix:— 一个错误修复(patch 递增)docs:、chore:、refactor:、test:、ci:— 单独使用时不触发发布feat!:/ 一个BREAKING CHANGE:脚注 — major 递增
示例:feat(library): add genre filter。
- 从
main分支。 - 进行聚焦的更改;将差异范围限定在单一关注点上。
- 确保
check、test和lint都通过。 - 使用模板打开一个 PR,并关联任何相关的问题。
规范驱动的更改
Section titled “规范驱动的更改”较大的功能会使用
OpenSpec 在 openspec/changes/ 下进行规划。对于
重大更改,先提出规范,然后再针对其任务进行实现。能力规范
位于 openspec/specs/ 下。
帮助翻译界面无需任何编码——参见 翻译 了解 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.