diff --git a/RELEASE_NOTES_v2.0.0.md b/RELEASE_NOTES_v2.0.0.md new file mode 100644 index 0000000..56dc271 --- /dev/null +++ b/RELEASE_NOTES_v2.0.0.md @@ -0,0 +1,177 @@ +# PolyHermes v2.0.0 Release Notes + +## 🎉 重大更新 + +PolyHermes v2.0.0 是一个重要版本更新,带来了系统动态更新功能、优化的用户体验和多项技术改进。 + +--- + +## ✨ 新功能 + +### 🔄 系统动态更新(核心功能) + +**无需重启 Docker 容器即可更新系统**,大幅提升部署和维护效率。 + +- ✅ **在线更新**:在 Web UI 中一键检查并应用更新,无需手动操作 +- ✅ **零停机更新**:更新过程约 30-60 秒,系统自动处理,无需重启容器 +- ✅ **自动回滚**:更新失败时自动恢复到旧版本,确保系统稳定性 +- ✅ **版本管理**:清晰显示当前版本和可用更新,支持 Pre-release 版本检测 +- ✅ **更新内容展示**:支持 Markdown 格式的更新说明,美观易读 + +**技术特性**: +- 独立的 Python Flask 更新服务(端口 9090),与主应用隔离 +- 单一更新包(tar.gz),包含前后端完整更新 +- 自动备份和版本管理 +- 管理员权限验证,确保安全性 + +### 📦 Release 管理工具 + +- **自动化发布脚本** (`create-release.sh`): + - 自动创建 Git 标签 + - 发布 GitHub Release + - 支持 Pre-release 标记 + - 自动拼接版本号后缀(Pre-release 自动添加 `-beta`) + - 支持非交互模式,便于 CI/CD 集成 + +### 🎨 版本号显示优化 + +- **Tag 格式显示**:版本号使用 Git Tag 格式(如 `v2.0.0-beta`) +- **智能颜色提示**: + - 🟡 **黄色 Tag**:有新版本可用(点击可跳转到系统更新页面) + - 🟢 **绿色 Tag**:当前已是最新版本 +- **镂空样式**:更小巧美观的版本号标签 +- **自动检查**:系统自动检查更新,有新版本时在导航栏显示提示 + +--- + +## 🎨 UI/UX 优化 + +### 系统更新页面 + +- **美化界面**:全新的渐变背景、卡片样式和图标设计 +- **Markdown 支持**:更新内容支持完整的 Markdown 渲染(标题、列表、代码块、表格等) +- **进度显示**:美观的进度条和状态提示 +- **优化布局**:系统更新模块移至系统设置页面最上方,更易访问 + +### 版本号显示 + +- 使用镂空 Tag 样式,字号 8px +- 与标题垂直居中对齐 +- 响应式设计,完美支持移动端和桌面端 + +--- + +## 🔧 技术改进 + +### 构建系统 + +- **修复 Docker 构建问题**: + - 修复 `BUILD_IN_DOCKER=false` 时找不到前端产物的问题 + - 优化 `.dockerignore` 配置,确保外部构建产物可被使用 + - 修复 GitHub Actions 构建流程 + +- **版本号注入**: + - 修复前端构建时版本号未正确传递的问题 + - 支持在构建时注入 Git Tag 和版本信息 + +- **Gradle Wrapper**: + - 修复 GitHub Actions 构建错误 + - 正确配置 Gradle Wrapper JAR + +### 代码质量 + +- 修复 TypeScript 编译错误 +- 清理未使用的导入和组件 +- 优化代码结构 + +--- + +## 📝 新增文档 + +- `docs/zh/DYNAMIC_UPDATE.md` - 动态更新技术方案文档 +- `docs/zh/DOCKER_VERSION.md` - Docker 版本管理说明 +- `docs/zh/DYNAMIC_UPDATE_CHECK.md` - 动态更新检查机制文档 +- `scripts/README_RELEASE.md` - Release 脚本使用说明 +- `scripts/CHANGELOG_TEMPLATE.md` - 更新日志模板 + +--- + +## 🔄 升级指南 + +### 从 v1.1.16 升级到 v2.0.0 + +#### 方式一:使用动态更新功能(推荐) + +1. 登录系统,进入 **系统设置** → **系统更新** +2. 点击 **检查更新** +3. 如果有新版本,点击 **立即升级** +4. 等待更新完成(约 30-60 秒) +5. 页面会自动刷新,更新完成 + +#### 方式二:重新部署 Docker 容器 + +```bash +# 1. 停止当前容器 +docker-compose -f docker-compose.prod.yml down + +# 2. 拉取新版本镜像 +docker pull wrbug/polyhermes:v2.0.0 + +# 3. 更新 docker-compose.prod.yml 中的镜像标签 +# image: wrbug/polyhermes:v2.0.0 + +# 4. 重新启动 +docker-compose -f docker-compose.prod.yml up -d +``` + +### 注意事项 + +- ⚠️ **数据备份**:虽然更新不会删除数据,但建议在更新前备份数据库 +- ⚠️ **权限要求**:执行动态更新需要管理员权限 +- ✅ **向后兼容**:v2.0.0 完全兼容 v1.1.16 的数据结构和配置 + +--- + +## 📊 变更统计 + +- **新增文件**:17 个 +- **修改文件**:13 个 +- **代码变更**:+5251 行,-163 行 + +### 主要新增文件 + +- `docker/update-service.py` - 更新服务(Python Flask) +- `frontend/src/pages/SystemUpdate.tsx` - 系统更新页面 +- `create-release.sh` - Release 创建脚本 +- `docs/zh/DYNAMIC_UPDATE.md` - 动态更新技术文档 + +--- + +## 🐛 修复的问题 + +- 修复 Docker 构建时找不到前端产物的问题 +- 修复前端构建时版本号未正确传递的问题 +- 修复 GitHub Actions 构建错误(Gradle Wrapper) +- 修复 TypeScript 编译错误 + +--- + +## 📚 相关文档 + +- [动态更新技术方案](docs/zh/DYNAMIC_UPDATE.md) +- [Docker 版本管理](docs/zh/DOCKER_VERSION.md) +- [部署指南](docs/zh/DEPLOYMENT.md) +- [Release 脚本使用说明](scripts/README_RELEASE.md) + +--- + +## 🙏 致谢 + +感谢所有使用 PolyHermes 的用户和贡献者! + +--- + +**下载地址**: +- Docker Hub: `wrbug/polyhermes:v2.0.0` +- GitHub Releases: [v2.0.0](https://github.com/WrBug/PolyHermes/releases/tag/v2.0.0) +