mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-29 03:36:15 +08:00
81 lines
3.3 KiB
Markdown
81 lines
3.3 KiB
Markdown
# 获取 SDK
|
||
|
||
插件 SDK 不发布到 PyPI。每个 4.0 beta 与正式版的 [GitHub Release](https://github.com/EstrellaXD/Auto_Bangumi/releases) 都附带两个给插件作者的文件:
|
||
|
||
| 文件 | 内容 |
|
||
| --- | --- |
|
||
| `autobangumi_sdk-<SDK 版本>-py3-none-any.whl` | `ab_sdk` 包与 `ab-plugin` 命令行 |
|
||
| `autobangumi-plugin-skill-<AB 版本>.zip` | 给 AI 编码助手使用的插件开发 skill |
|
||
|
||
轮子文件名里是 SDK 版本(`ab_sdk.SDK_VERSION`,如 `0.6.0`),不是 AB 的版本号。请从目标 AB 版本的 Release 下载轮子,两者的 SDK 版本一致。插件清单里的 `sdk` 范围(如 `">=0.5,<1"`)必须包含这个版本。
|
||
|
||
## 安装轮子
|
||
|
||
轮子要求 Python 3.14 或更高,依赖 `pydantic`、`httpx2` 与 `packaging`,不需要安装 AutoBangumi。
|
||
|
||
只用命令行时,装成全局工具:
|
||
|
||
```bash
|
||
uv tool install ./autobangumi_sdk-0.6.0-py3-none-any.whl
|
||
ab-plugin --help
|
||
```
|
||
|
||
写插件和跑测试时,把轮子加为插件项目的依赖:
|
||
|
||
```bash
|
||
cd my-plugin
|
||
uv add ../autobangumi_sdk-0.6.0-py3-none-any.whl
|
||
uv run pytest
|
||
```
|
||
|
||
`uv add` 在 `pyproject.toml` 的 `[tool.uv.sources]` 里记下轮子的本地路径。`ab-plugin pack` 不打包 `pyproject.toml` 与 `uv.lock`,这个路径不会进入插件包。`ab-plugin new` 生成的 `pyproject.toml` 已经依赖 `autobangumi-sdk`,但没有指定来源,所以在新骨架里也要先执行一次 `uv add`。
|
||
|
||
契约测试需要 pytest。骨架的 `dev` 依赖组已带上 pytest;也可以安装可选依赖 `autobangumi-sdk[test]`。
|
||
|
||
升级 SDK 时,下载新 Release 的轮子,再执行一次 `uv tool install --force <新轮子>` 或 `uv add <新轮子>`。
|
||
|
||
## 在 AB 仓库里开发
|
||
|
||
SDK 的源码在 `backend/src/ab_sdk`,打包配置在 `backend/sdk/pyproject.toml`。`backend` 的 `dev` 依赖组以可编辑方式安装它,所以在仓库里不需要轮子:
|
||
|
||
```bash
|
||
cd backend
|
||
uv sync --group dev
|
||
uv run ab-plugin validate ../examples/plugins/ntfy-notifier
|
||
```
|
||
|
||
自己构建轮子(与 CI 相同的命令):
|
||
|
||
```bash
|
||
uv build --wheel backend/sdk --out-dir sdk-dist
|
||
```
|
||
|
||
## 插件开发 skill
|
||
|
||
skill 是一组 Markdown 说明,AI 编码助手读取它们来写、测试和打包 AB 插件。zip 内是 `autobangumi-plugin/` 目录:
|
||
|
||
```
|
||
autobangumi-plugin/
|
||
├── SKILL.md # 工作流程、扩展点一览、常见错误
|
||
└── references/
|
||
├── extension-points.md # 每个扩展点的签名与字段
|
||
├── frontend.md # 前端挂载点
|
||
└── testing.md # 契约测试与 create_plugin
|
||
```
|
||
|
||
把它解压到助手的 skills 目录。以 Claude Code 为例,个人 skills 目录是 `~/.claude/skills/`:
|
||
|
||
```bash
|
||
unzip autobangumi-plugin-skill-<AB 版本>.zip -d ~/.claude/skills/
|
||
```
|
||
|
||
其它助手请按它们各自的 skills 目录放置。skill 的源码在仓库的 `skills/autobangumi-plugin/`。
|
||
|
||
## CI 如何构建
|
||
|
||
`.github/workflows/build.yml` 的 `release` 任务只在维护者推送版本标签时运行:
|
||
|
||
1. `uv build --wheel backend/sdk --out-dir sdk-dist` 构建轮子,版本取自 `ab_sdk.SDK_VERSION`。
|
||
2. 把 `skills/autobangumi-plugin` 压缩为 `autobangumi-plugin-skill-<AB 版本>.zip`。
|
||
3. 把两者与 WebUI、在线更新包等文件一起附到该版本的 GitHub Release。beta(预发布)与正式版都带这两个文件。
|