Files
Fu-Jie_openwebui-extensions/docs/release-workflow.zh.md

169 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 插件发布工作流
本文档描述了发布插件更新的工作流程。
---
## 概述
发布工作流包含以下组件:
1. **CHANGELOG.md** - 记录所有重要更改
2. **版本提取脚本** - 自动提取插件版本信息
3. **GitHub Actions 工作流** - 自动化发布流程
---
## 发布流程
### 第 1 步:更新插件版本
当您对插件进行更改时,更新插件文档字符串中的版本号:
```python
"""
title: 我的插件
author: Fu-Jie
version: 0.2.0 # <- 更新这里
...
"""
```
### 第 2 步:更新更新日志
`CHANGELOG.md``[Unreleased]` 部分添加您的更改:
```markdown
## [Unreleased] / 未发布
### Added / 新增
- 智能思维导图新功能
### Changed / 变更
- 性能优化
### Fixed / 修复
- 修复导出 bug
```
### 第 3 步:创建发布
#### 方式 A手动发布推荐
1. 前往 GitHub Actions → "Plugin Release / 插件发布"
2. 点击 "Run workflow"
3. 填写详细信息:
- **version**: 例如 `v1.0.0`
- **release_title**: 例如 "智能思维导图重大更新"
- **release_notes**: Markdown 格式的附加说明
- **prerelease**: 如果是预发布版本则勾选
#### 方式 B基于标签的发布
```bash
# 创建并推送版本标签
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0
```
这将自动触发发布工作流。
### 第 4 步:完成更新日志
发布后,将 `[Unreleased]` 的内容移动到新的版本部分:
```markdown
## [Unreleased] / 未发布
<!-- 暂时为空 -->
## [1.0.0] - 2024-01-15
### Added / 新增
- 智能思维导图新功能
### Plugin Updates / 插件更新
- `Smart Mind Map / 思维导图`: v0.7.0 → v0.8.0
```
---
## 版本编号
我们遵循[语义化版本](https://semver.org/lang/zh-CN/)
- **主版本 (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*`)
**动作:**
1. 提取所有插件版本
2. 生成发布说明
3. 创建 GitHub Release
### plugin-version-check.yml
**触发条件:**
- 修改 `plugins/**/*.py` 的 Pull Request
**动作:**
1. 比较基础分支和 PR 的插件版本
2. 在 PR 上评论版本变化
---
## 脚本使用
### extract_plugin_versions.py
```bash
# 输出到控制台
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
```
---
## 最佳实践
1. **始终更新版本号** - 对插件进行功能性更改时
2. **编写清晰的更新日志** - 描述更改内容和原因
3. **本地测试** - 在创建发布之前
4. **使用预发布** - 测试新功能
5. **引用 issue** - 在适用时在更新日志条目中
---
## 作者
Fu-Jie
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)