为什么 Branch 22.03 LTS  Branch 22.03 LTS SP1  不是共主干开发呢?

都是5.10的内核, 你拆分2个分支开发的目的是什么?

 

对内核的诉求是 5.10-LTS内核要同时兼容 openEuler 22.03 LTS openEuler 22.03 LTS SP1 openEuler 22.03 LTS SP2  等后续演进版本;

 

 

 

发件人: Xiexiuqi
发送时间: 20201017 14:55
收件人: Zhoukang (A) <zhoukang7@huawei.com>; Zhanghailiang <zhang.zhanghailiang@huawei.com>
抄送: tc <tc@openeuler.org>
主题: Re: 答复: [Tc] TC 议题申报:openEuler kernel 5.10 内核版本号规则改进方案

 

 

On 2020/10/16 16:29, Zhoukang (A) wrote:

 
为什么4.19版本不是共主干开发呢? 
搞这么多分支的意义是什么?
请收编分支;  4.19下面应该只能存在2个分支LTS分支和创新版本分支;

 

我理解你想要的可能是 kernel-4.19 这个分支,这个是持续向前演进的。
其他的分支是配合 openEuler 的发行版本出的维护分支,不同的发行版
版本定位有区别,版本时间点和周期也有不同,所以会存在多个分支。

以接下来的 5.10 为例的话,kernel 分支的思路,可以看一下。
4.19 类似,也是会有一个长期的维护分支,一直在演进,但是 kabi 不保持。
其他的分支是配合不同时期的 openEuler 发行版的维护分支,其中 openEuler LTS
发行版有一定的 kabi 兼容性要求。

 
 
 
 
-----邮件原件-----
发件人: Xie XiuQi [mailto:xiexiuqi@huawei.com] 
发送时间: 20201015 22:18
收件人: Zhanghailiang <zhang.zhanghailiang@huawei.com>
抄送: tc <tc@openeuler.org>
主题: [Tc] TC 议题申报:openEuler kernel 5.10 内核版本号规则改进方案
 
海亮 & TC
 
议题申报:openEuler kernel 5.10 内核版本号改进方案
(总体方案和 RHEL/CentOS kernel 版本号规则类似)
 
1. openEuler kernel 版本号,原方案及存在的问题 (以 4.19 为例)
 
版本号格式:
 
  4.19.<stable 版本号>-<年月>.<月份内Release>.<buildid>
 
  说明:
  - <stable 版本号>linux stable 分支版本,合入对应的stable 版本时更新
     4.19.90 4.19.128 等等
  - <年月>,标识版本发布时的年份&月份,如 2010 表示202010月份,2009 表示209月份
  - <月份内Release>,标识本月内发布的第几个版本,比如 202010月份发的第2个版本,则
    版本号为 xxxx-2020.2.0
  - buildid, 构建号,不管是代码还是制品仓,只要有修改要出rpm包,就在之前基础上 +1
 
  存在的问题:
  - 上述方案,如果只有一条分支,则问题不大,版本号顺序增加
  - 如果有多个分支,则可能存在分之间版本号混淆,不能体现主干与分支的关系等问题
  - 比如,主干在开发时,<stable 版本号>.<年月>.<月份内Release> 这几个版本号都
    在变化;openEuler发布后,<年月>.<月份内Release> 这几个版本号也都在更新,
    且,如果主干和分支如果在同一个月都发版本时,有可能引起版本号重复。如都是10月份
    2个版本,则版本号后缀都是 -2010.2.0
  - <年月>.<月份内Release> ,不能体现大版本小版本的层级关系
 
2 改进方案 (以 5.10 内核为例)
 
版本号格式:(格式与原方案完全相同,只是各字段含义有细微变化)
 
  5.10.0-<开发版本号>.<维护版本号>.<构建号/buildid>
 
总体思路:
  - 上游版本号选定后,上游版本号保持不变;只更新下层版本号;
  - 社区 5.10.0 是开发分支的上游,选定后,保持不变;开发分支有更新,只升级<开发版本号>
  - 开发分支是维护分支的上游,一旦选定某个开发版本,转维护时,只升级<维护版本号>
  - 通过<开发版本号><维护版本号>,体现开发与维护的关系
  - 主干开发与多个维护分支共同存在时,版本号不混淆,能清晰体现上下游关系
 
各字段具体说明:
  1 5.10.0 前面的基础版本号不变,一直是 5.10.0,不体现 stable 的小版本号;
  2) 后面几位是 <开发版本号>-<维护版本号>-<构建号/buildid>
  比如:5.10.0-2.0.0.0007.oe1.aarch64
  %global upstream_version    5.10
  %global upstream_sublevel   0
  %global devel_release       2
  %global maintenance_release .0.0
  %global buildid             .0007
 
  3)版本号思路:
     - 开发的时候,只更新<开发版本号><维护版本号>保持为 .0.0
     - openEuler 发行版发布之后,只更新<维护版本号><开发版本号>固定不变
     - <构建号/buildid>,构建号,不管是代码还是制品仓,只要有修改要出rpm包,就在之前基础上 +1
 
  4)例子:
   - 开发的时候,只更新<开发版本号>,维护版本号保持为 .0.0
     源码 tag:  5.10.0-1.0.0   制品仓 release:   5.10.0-1.0.0.0001.oe1.aarch64
     源码 tag:  5.10.0-2.0.0   制品仓 release:   5.10.0-2.0.0.0002.oe1.aarch64
     源码 tag:  5.10.0-3.0.0   制品仓 release:   5.10.0-3.0.0.0003.oe1.aarch64
 
   - openEuler 发行版发布之后,假设从  5.10.0-123.0.0 开发版本转 openEuler 发布,
     之后再合入维护补丁,就只更新维护版本号 (最后那个 0 预留,紧急情况下使用)
 
     源码 tag:  5.10.0-123.1.0  制品仓 release:   5.10.0-123.1.0.0041.oe1.aarch64
     源码 tag:  5.10.0-123.2.0  制品仓 release:   5.10.0-123.2.0.0042.oe1.aarch64
     源码 tag:  5.10.0-123.3.0  制品仓 release:   5.10.0-123.3.0.0043.oe1.aarch64
     。。。
 
   - 假设后续有 SP 版本从  5.10.0-456.0.0 开发版本发布,之后再合入维护补丁,就只更新<维护版本号>
  
     源码 tag:  5.10.0-456.1.0
     源码 tag:  5.10.0-456.2.0
     源码 tag:  5.10.0-456.3.0
     。。。
  
   - 开发分支上回合 stable 补丁时,也是只更新<开发版本号>
  
5)相比之前的好处:
   相比之前通过月份来定版本号的好处,通过区分开发版本号,和维护版本号,体现主干
   和和维护分支的关系。
 
   之前月份命名版本号,在分支多的情况下,存在混淆的情况,比如,相同月份不同分支
    release 号可能会重复,比如都是10月份的第一个版本:-2010.1.0
 
3. 影响
_______________________________________________
Tc mailing list -- tc@openeuler.org
To unsubscribe send an email to tc-leave@openeuler.org