| name | release |
| description | Dify vLLM provider 完整 release 流程。当需要发布新版本、构建 .difypkg、打 tag、创建 GitHub release、更新 fork、提交 PR 到 langgenius/dify-plugins 时使用。触发词包括 "release"、"发布"、"构建版本"、"提交 PR"、"打包插件" 等。 |
| allowed-tools | Bash(git:*), Bash(dify:*), Bash(gh:*), Bash(agent-browser:*) |
Release Workflow
完成 bug 修复/功能开发后,发布新版本到 Dify Marketplace 的完整流程。
Tool Preference
- Primary: 所有 GitHub 操作优先使用
gh CLI(更快、更可靠)
- Fallback: 当
gh 不可用时,使用 agent-browser 操作 GitHub web UI
1. Bump Version
编辑 manifest.yaml,将两处 version 字段自增:
version: 0.2.2
meta:
version: 0.2.2
2. Build Plugin Package
dify plugin package . -o /tmp/vllm-{version}.difypkg
3. Commit & Tag
git add manifest.yaml models/llm/llm.py
git commit -m '<版本号: 简短标题>
## 问题/错误
<描述>
## 发现过程
<描述>
## 实现方案
<描述>
## 实现过程
<描述>
## 总结
<描述>'
git tag -a v{version} -m "v{version}: <描述>"
git push origin master
git push origin v{version}
4. Create GitHub Release
Primary (gh) — 直接 create,不用 draft:
gh release create v0.2.2 \
--repo yangyaofei/dify-vllm-provider \
--title "v0.2.2" \
--notes '<release notes in markdown>' \
/tmp/vllm-0.2.2.difypkg
gh release edit v0.2.2 --repo yangyaofei/dify-vllm-provider --notes '<merged notes>'
gh release upload v0.2.2 /tmp/vllm-0.2.2.difypkg \
--repo yangyaofei/dify-vllm-provider --clobber
Fallback (agent-browser):
agent-browser open https://github.com/yangyaofei/dify-vllm-provider/releases/new
agent-browser snapshot -i
agent-browser click @<tag-dropdown-ref>
agent-browser click @<v0.2.2-menuitemradio>
agent-browser fill @<title-textbox> "v0.2.2"
cat <<'EOF' | agent-browser eval --stdin
const ta = document.querySelector('#fc-release_body');
if (ta) { ta.value = `notes content`; ta.dispatchEvent(new Event('input', {bubbles: true})); }
EOF
agent-browser upload "#releases-upload" "/tmp/vllm-0.2.2.difypkg"
cat <<'EOF' | agent-browser eval --stdin
const inputs = document.querySelectorAll('input[type="file"]');
JSON.stringify(Array.from(inputs).map((el,i) => ({i, id: el.id, accept: el.accept})));
EOF
agent-browser click @<publish-button>
5. Update Fork (yangyaofei/dify-plugins)
git clone --depth 1 git@github.com:yangyaofei/dify-plugins.git /tmp/dify-plugins
rm /tmp/dify-plugins/yangyaofei/dify-vllm-provider-v{old}.difypkg
cp /tmp/vllm-{version}.difypkg /tmp/dify-plugins/yangyaofei/dify-vllm-provider-v{version}.difypkg
cd /tmp/dify-plugins
git add yangyaofei/
git commit -m 'vllm provider v{version}: <描述>'
git push origin main
注意: commit message 中 issue 引用必须用跨仓库格式:
# 错误(会引用当前 repo 的 issue):
修复 #34 思考模式标记格式
# 正确:
修复 yangyaofei/dify-vllm-provider#34 思考模式标记格式
6. Submit/Update PR to Official
Primary (gh):
如果已有旧版本 PR 打开,直接 push 同分支即可自动更新:
gh pr edit <PR_NUMBER> --repo langgenius/dify-plugins --title "vllm provider v{version}"
gh pr edit <PR_NUMBER> --repo langgenius/dify-plugins --body '<Plugin Submission Form>'
新建 PR:
gh pr create \
--repo langgenius/dify-plugins \
--head yangyaofei:main \
--base main \
--title "vllm provider v0.2.2" \
--body '<Plugin Submission Form>'
PR body 必须包含 Plugin Submission Form 要求的完整表单(6 个 section)。
Fallback (agent-browser):
agent-browser open https://github.com/yangyaofei/dify-plugins
7. Handle Review Feedback
Primary (gh):
gh pr view <PR_NUMBER> --repo langgenius/dify-plugins --json reviews --jq '.reviews[]'
gh pr checks <PR_NUMBER> --repo langgenius/dify-plugins
Fallback (agent-browser):
agent-browser open https://github.com/langgenius/dify-plugins/pull/<PR_NUMBER>
agent-browser snapshot -i
8. Notify Related Issues
gh issue comment <ISSUE_NUMBER> \
--repo yangyaofei/dify-vllm-provider \
--body 'v{version} has been submitted via PR https://github.com/langgenius/dify-plugins/pull/<PR_NUMBER>.'
附: 检查清单