版本发布介绍

本页介绍了 MOSN 的 版本发布步骤。

MOSN 版本发布步骤

一、冻结代码

  • 在准备一个版本发布期间,停止代码往 master 分支的合并

二、更新依赖

  • 发布 mosn/api,版本与即将发布的 mosn 相同
  • 更新 mosn/pkg 的 mosn/api 版本至最新,然后发布 mosn/pkg
  • 更新 mosn 的 api、pkg 至最新

三、整理 Release notes

  • 基于 Github 的 PullRequest 记录,整理本次发布的内容与上一个版本之间的差异,需要注意仅统计目标分支是 master 且正常合并的 PullRequest
  • 首先整理完原始信息以后,进行提炼和总结
    • 通常情况下,一个 PullRequest 对应一个改动记录
    • 存在部分特殊情况是一个 PullRequest 包含多个改动的情况,可以请 PullRequest 提供者提供详细信息
    • 也可能存在多个 PullRequest 是针对同一个改动的情况(如新功能,分开提 PullRequest,或者在同一个版本迭代中不断优化)
  • 提炼后的完整 Release notes 记录格式可以参考 CHANGELOG
  • 提炼后的 Release notes 需要有英文版本的记录

四、测试报告

  • 所有的改动点都需要有对应的测试记录,测试方式可以有多种,包括但不限于
    • 完整的单元测试覆盖,确保基本的功能场景正确,默认代码合并的时候会执行
    • 性能测试 Benchmark,针对可能对性能有影响的改动,需要执行性能测试。
    • 手动模拟测试,主要针对一些单元测试无法很好覆盖的场景(如涉及网络 IO、Proxy 转发等多模块交互),通过手动搭建测试环境(配置、模拟 Server 与 Client)进行场景复现与验证
      • 手动模拟测试完成以后记录详细的测试步骤,包括:模拟的场景、使用的配置、使用的 Server、使用的 Client 等;后续可以考虑将手动场景实现为 integrate 测试
  • 测试完成以后,产出测试报告,说明对应的功能点使用哪种测试方式测试与测试的结果

五、版本发布

  • 版本发布 PullRequest

    • 修改VERSION
    • 修改CHANGELOG.mdCHNAGELOH_ZH.md
    • 上传测试报告reports/${VERSION}.md
  • 官网文档的同步修改

    • github.com/mosn/mosn.io/content/zh/blog/releases 下新增对应的 release notes.
    • 英文版 release notes 也需要做一样的更新
  • 正式 release

    • 合并完版本发布 PullRequest后,基于 master 分支完成 release
    • release 时的描述内容填写英文版 release notes 的内容
    • 通过make build命令编译出对应的二进制并且上传
    • 完成 release

修改于 2024年3月28日: publish other HTNN modules (704c601)