贡献插件到插件市场
把辛苦开发的插件发布到 Neo-MoFox 插件市场,让更多用户一键安装、依赖和搜索,是参与社区共建最直接的方式。本文以 mpdt 为核心,串起从「插件就绪」到「市场可装」的完整贡献流程。
整体流程一览
贡献一个插件到市场,通常经过以下阶段:
开发完成 ──► 静态检查 ──► 配置 Token ──► 发布到市场 ──► 持续维护
│ │ │ │ │
plugin dev plugin check config edit market publish market package-update / yank市场不托管插件包
插件市场只保存插件元数据、版本索引和审核状态,真正的 .mfp 包仍然通过你自己的 GitHub Release 分发。这意味着你对自己的代码和发布历史拥有完整控制权。
前置要求
在开始发布之前,请确认以下条件已经满足:
1. 一个可发布的插件
确保插件满足 manifest.json 格式说明 中的最小要求,且关键字段完整:
id/name/version/authorcategories(必须是有效分类)tagsentry_point与版本声明(api_version声明所用 API 模块版本;min_core_version声明核心能力版本;按需填写,详见 manifest.json 格式说明)
如果尚未创建插件,使用 mpdt plugin init 一键生成标准结构。
2. GitHub 账号与 Token
- 一个 GitHub 账号,用于托管插件源码和 Release。
- 一个具有
repo和write:packages权限的 Personal Access Token。
3. MPDT 已配置 Token
通过 mpdt config edit 写入 Token:
mpdt config edit github.token ghp_xxxxxxxxxxxxx如果还未安装 mpdt,参见 安装指南。
第一步:完成开发与自测
发布前,确认插件在本地能够正常加载和运行。推荐使用 mpdt plugin dev 进入热重载开发模式,保存即重载,快速迭代。
mpdt plugin dev建议的目录与文件
完善以下文件会让插件更受欢迎:
README.md— 功能说明、安装方法、配置示例LICENSE— 选择 GPL-3.0 / MIT / Apache-2.0 / BSD-3-Clause 之一manifest.json— 完整的元数据docs/— 文档目录(可用--with-docs一并发布)
第二步:运行静态检查
发布前必须通过 mpdt plugin check 的 8 层检查,建议带上 --fix 自动修复可处理的问题:
mpdt plugin check --fix --level info如果出现无法自动修复的错误,请按报告提示手动修复后再继续。详细参数和检查层级参见 mpdt plugin check。
不要带 error 级别问题发布
市场中检索到包含错误的插件会严重影响用户信任。检查报告存在 error 级别问题时请勿继续发布。
第三步:发布到市场
首次发布
使用 mpdt market publish 一键完成构建、Git 提交、GitHub 仓库创建、Release 上传与市场注册:
mpdt market publish --owner your-github-username --release-notes "首次发布"mpdt 会自动完成以下步骤:
- 读取并校验
manifest.json - 调用
mpdt plugin build构建.mfp - 校验 GitHub Token 与仓库权限
- 创建/确认 GitHub 仓库
- 初始化 Git、提交代码、打版本标签(如
v1.0.0)并推送 - 创建 GitHub Release 并上传
.mfp资产 - 将插件元数据注册到插件市场
完整参数说明与常见问题(Token 权限不足、仓库冲突等)见 mpdt market publish。
验证发布
发布完成后,可以用 mpdt market info 查询插件详情,确认版本已成功注册:
mpdt market info your-plugin-id也可以用 mpdt market search 在市场中检索:
mpdt market search your-plugin-id第四步:持续维护
插件发布后,后续的迭代依然围绕 mpdt 命令展开。
发布新版本
修改代码后,按以下流程发布新版本:
# 1. 升级版本号(patch / minor / major)
mpdt plugin bump --type patch
# 2. 再次检查
mpdt plugin check --fix
# 3. 打包并发布新版本
mpdt market package-update --release-notes "修复若干 bug"mpdt market package-update 会复用现有的 GitHub 仓库,创建新的 Release 和市场版本记录。详见 mpdt market package-update。
废弃有问题的版本
当某个版本存在严重 bug 或安全漏洞时,使用 mpdt market yank 标记为废弃,已安装用户不受影响,但新用户无法安装:
mpdt market yank your-plugin-id 1.0.0 --reason "存在安全漏洞,请升级到 1.0.1"关于删除
mpdt market delete 会从市场移除插件及所有版本信息,是不可逆操作。除非确实需要彻底下线,否则优先使用 yank 废弃有问题的版本。
最佳实践
1. 遵循语义化版本
借助 mpdt plugin bump 自动管理版本号:
| 变更类型 | bump 类型 | 示例 |
|---|---|---|
| 仅修复 bug | patch | 1.0.0 → 1.0.1 |
| 新增功能、向下兼容 | minor | 1.0.0 → 1.1.0 |
| 破坏性变更 | major | 1.0.0 → 2.0.0 |
2. 编写高质量的 Release Notes
详细的 Release Notes 帮助用户决定是否升级:
mpdt market publish --release-notes "
## 新功能
- 添加天气查询功能
- 支持自定义城市
## Bug 修复
- 修复配置读取错误
## 改进
- 优化性能
"3. 完善元数据
manifest.json 中的 categories 和 tags 直接影响插件在市场中的可发现性。请使用有效的分类和准确的标签,让目标用户能通过 mpdt market search 找到你的插件。
4. 配置 CI 自动检查
在 GitHub Actions 中集成 mpdt plugin check,确保每次提交都不引入新问题:
# .github/workflows/check.yml
name: Plugin Check
on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install mofox-plugin-dev-toolkit
- run: mpdt plugin check --level error发布检查清单
发布前逐项确认:
- 插件通过
mpdt plugin check -
manifest.json字段完整且分类/标签有效 - 已配置 GitHub Token(
mpdt config edit github.token) - 版本号已通过
mpdt plugin bump升级 -
README.md内容完善 -
LICENSE文件存在 - 插件功能已在本地测试通过
相关命令参考
贡献插件到市场涉及的核心 mpdt 命令:
| 阶段 | 命令 | 说明 |
|---|---|---|
| 开发调试 | mpdt plugin dev | 热重载开发模式 |
| 静态检查 | mpdt plugin check | 8 层静态检查 |
| 版本升级 | mpdt plugin bump | 语义化版本升级 |
| 构建打包 | mpdt plugin build | 打包为 .mfp |
| 配置 Token | mpdt config edit | 写入 GitHub Token |
| 首次发布 | mpdt market publish | 一键发布到市场 |
| 查询详情 | mpdt market info | 查看插件详情 |
| 搜索插件 | mpdt market search | 在市场中搜索 |
| 发布新版本 | mpdt market package-update | 更新已发布插件 |
| 废弃版本 | mpdt market yank | 标记问题版本为废弃 |
| 删除插件 | mpdt market delete | 彻底移除插件(慎用) |
