版本发布
Karmada版本发布可分为minor版本发布和patch版本发布。例如,v1.3.0是一个minor版本,v1.3.1是一个patch版本。Minor版本表示此版本有新特性添加,同时兼容之前的版本;Patch版本表示此版本主要为Bug修复,同时兼容之前版本。release,tag和分支之间的关系如下图:

对于不同的版本发布,操作步骤也不同。
Minor版本发布
Minor版本应该从对于的minor分支发布, 发布步骤描述如下。
创建release分支(手动)
首先,确保所有必要PR都已被合入master 分支,然后从master分支创建minor release 分支。Minor release分支的命名应该符合release-{major}.{minor}格式,例如,release-1.4。
准备发布说明(手动)
每个版本发布都需要格式正确的版本发布说明。版本发布说明应该遵循如下格式:
# What's New
此版本发布的重点更新,例如,一些关键特性的支持。此部分内容需要手动整理收集。
# Other Notable Changes
## API Changes
* API更改列表,如API版本更新。此部分内容需要手动整理收集。
## Bug Fixes
* Bug修复列表。此部分内容需要手动整理收集。
## Features & Enhancements
* 新特性和功能增强。此部分内容需要手动整理收集。
## Security
* 安全相关修复。此部分内容需要手动整理收集。
## Other
### Dependencies
* 依赖相关更新,如golang版本更新。此部分内容需要手动整理收集。
### Instrumentation
* 可观测性相关更新,例如,增加监控数据/事件记录。此部分内 容需要手动整理收集。
收集发布说明(手动)
为了获取如上所有相关内容,需要对比新创建的 minor release分支和此版本的 minor pre-release tag,例如,比较 release-1.8分支和 v1.8.0-alpha.0tag。以下是在 GitHub中的操作步骤:
- 进入Compare界面。
- 选择 minor pre-release tag为基准分支。
- 选择新创建的 minor release分支做为头分支。
界面就会显示两个分支间的所有相关内容。

然后从这些对比修改中提取为如上不同类型的发布说明。例如,从此修改提取如下发布说明:
## Bug Fixes
* `karmada-controller-manager`: Fixed the panic when cluster ImpersonatorSecretRef is nil.