⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

11.1.4 发布公告:变更日志与升级指南

一句话破题

CHANGELOG(变更日志)记录每个版本的变更内容,帮助用户了解更新了什么、是否需要升级、升级时需要注意什么。

核心价值

维护 CHANGELOG 能让你:

  • 让用户快速了解版本变化
  • 降低升级时的不确定性
  • 建立可追溯的项目历史

CHANGELOG 格式规范

遵循 Keep a Changelog 规范:

markdown
# Changelog

## [Unreleased]
### Added
- 新增用户头像上传功能

## [1.2.0] - 2024-01-15
### Added
- 新增深色模式支持
- 新增多语言切换功能

### Changed
- 优化首页加载速度

### Fixed
- 修复登录页面样式问题

### Deprecated
- `getUserInfo` API 将在 2.0.0 版本移除

### Removed
- 移除废弃的 `oldApi` 端点

### Security
- 修复 XSS 安全漏洞

## [1.1.0] - 2024-01-01
### Added
- 初始版本发布

变更类型说明

类型说明示例
Added新增功能新增用户注册功能
Changed功能变更优化搜索算法
Deprecated即将废弃该 API 将在下版本移除
Removed已移除移除旧版登录接口
FixedBug 修复修复日期显示错误
Security安全相关修复权限绕过漏洞

快速上手

手动维护

每次提交时同步更新 CHANGELOG.md

bash
# 在 Unreleased 区域添加变更
echo "- 新增 XX 功能" >> CHANGELOG.md
git add CHANGELOG.md
git commit -m "docs: update changelog"

自动生成

使用工具从 Git 提交记录生成:

bash
# 安装 conventional-changelog-cli
npm install -g conventional-changelog-cli

# 生成 CHANGELOG
conventional-changelog -p angular -i CHANGELOG.md -s

配合 npm version 使用

json
{
  "scripts": {
    "version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md"
  }
}

这样每次执行 npm version 时会自动更新 CHANGELOG。

升级指南

对于破坏性变更,需要提供详细的升级指南:

markdown
## 从 1.x 升级到 2.0

### 破坏性变更

#### 1. API 响应格式变更

**旧格式**:
```json
{ "data": [...], "total": 100 }

新格式:

json
{ "items": [...], "pagination": { "total": 100 } }

迁移方法:

typescript
// 旧代码
const { data, total } = response

// 新代码
const { items, pagination } = response
const { total } = pagination

2. 环境变量重命名

旧名称新名称
DB_URLDATABASE_URL
API_KEYNEXT_PUBLIC_API_KEY

## GitHub Release

除了 CHANGELOG,还可以在 GitHub 创建 Release:

```bash
# 使用 gh CLI 创建 Release
gh release create v1.2.0 \
  --title "v1.2.0" \
  --notes-file CHANGELOG.md \
  --latest

避坑指南

新手最容易犯的错

  1. 只在发布时才更新 CHANGELOG(应该随代码一起提交)
  2. 变更描述太笼统("修复了一些问题"没有价值)
  3. 破坏性变更没有迁移指南
  4. 忘记更新 Unreleased 区域