3.3 KiB
3.3 KiB
插件发布工作流
本文档描述了发布插件更新的工作流程。
概述
发布工作流包含以下组件:
- CHANGELOG.md - 记录所有重要更改
- 版本提取脚本 - 自动提取插件版本信息
- GitHub Actions 工作流 - 自动化发布流程
发布流程
第 1 步:更新插件版本
当您对插件进行更改时,更新插件文档字符串中的版本号:
"""
title: 我的插件
author: Fu-Jie
version: 0.2.0 # <- 更新这里
...
"""
第 2 步:更新更新日志
在 CHANGELOG.md 的 [Unreleased] 部分添加您的更改:
## [Unreleased] / 未发布
### Added / 新增
- 智能思维导图新功能
### Changed / 变更
- 性能优化
### Fixed / 修复
- 修复导出 bug
第 3 步:创建发布
方式 A:手动发布(推荐)
- 前往 GitHub Actions → "Plugin Release / 插件发布"
- 点击 "Run workflow"
- 填写详细信息:
- version: 例如
v1.0.0 - release_title: 例如 "智能思维导图重大更新"
- release_notes: Markdown 格式的附加说明
- prerelease: 如果是预发布版本则勾选
- version: 例如
方式 B:基于标签的发布
# 创建并推送版本标签
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0
这将自动触发发布工作流。
第 4 步:完成更新日志
发布后,将 [Unreleased] 的内容移动到新的版本部分:
## [Unreleased] / 未发布
<!-- 暂时为空 -->
## [1.0.0] - 2024-01-15
### Added / 新增
- 智能思维导图新功能
### Plugin Updates / 插件更新
- `Smart Mind Map / 思维导图`: v0.7.0 → v0.8.0
版本编号
我们遵循语义化版本:
- 主版本 (MAJOR): 不兼容的 API 变更
- 次版本 (MINOR): 向后兼容的新功能
- 补丁版本 (PATCH): 向后兼容的 Bug 修复
示例
| 变更类型 | 版本变化 |
|---|---|
| Bug 修复 | 0.1.0 → 0.1.1 |
| 新功能 | 0.1.1 → 0.2.0 |
| 不兼容变更 | 0.2.0 → 1.0.0 |
GitHub Actions 工作流
release.yml
触发条件:
- 手动触发 (workflow_dispatch)
- 推送版本标签 (
v*)
动作:
- 提取所有插件版本
- 生成发布说明
- 创建 GitHub Release
plugin-version-check.yml
触发条件:
- 修改
plugins/**/*.py的 Pull Request
动作:
- 比较基础分支和 PR 的插件版本
- 在 PR 上评论版本变化
脚本使用
extract_plugin_versions.py
# 输出到控制台
python scripts/extract_plugin_versions.py
# 输出为 JSON
python scripts/extract_plugin_versions.py --json
# 输出为 Markdown 表格
python scripts/extract_plugin_versions.py --markdown
# 与之前版本比较
python scripts/extract_plugin_versions.py --compare old_versions.json
# 保存到文件
python scripts/extract_plugin_versions.py --json --output versions.json
最佳实践
- 始终更新版本号 - 对插件进行功能性更改时
- 编写清晰的更新日志 - 描述更改内容和原因
- 本地测试 - 在创建发布之前
- 使用预发布 - 测试新功能
- 引用 issue - 在适用时在更新日志条目中
作者
Fu-Jie
GitHub: Fu-Jie/awesome-openwebui