fix(builder): 版本时间格式改回 YYYYMMDDTHHMM
按要求保留字母分隔符:20260918T1722。分钟精度不变,同一分支同日多次 构建仍能正确排序。 记录切换边界:Debian 里字母排在标点之前,YYYYMMDDT… 小于旧格式的 YYYYMMDD.…,切换当天同日的旧格式包会压住新包,需要在仓库里把那些旧包 移除或停用;次日新格式始终更大。回归测试显式断言这行边界。
This commit is contained in:
+12
-11
@@ -134,29 +134,30 @@ Docker registry/ns/foo:1.4.2
|
||||
### 测试(其它任何 commit)
|
||||
|
||||
基线 = 祖先上最近的那颗稳定 tag(没有则为 `0.0.0`)。有基线时测试号把
|
||||
patch 机械 +1,再加构建时间 `YYYYMMDDHHMM`、清洗后的分支名、相对距离、短 SHA。
|
||||
patch 机械 +1,再加构建时间 `YYYYMMDDTHHMM`、清洗后的分支名、相对距离、短 SHA。
|
||||
这是排序键,不是在选定下一正式 SemVer。测试与正式进**同一个** apt /
|
||||
Docker 仓库,所以 DEB 必须用 `~` 挂在下一 patch 上:`1.4.2` <
|
||||
`1.4.3~202609181430…` < `1.4.3`。已装上一正式版的机器可以升到 bugfix 测试包;
|
||||
`1.4.3~20260918T1430…` < `1.4.3`。已装上一正式版的机器可以升到 bugfix 测试包;
|
||||
同号正式版仍盖住测试。
|
||||
|
||||
分支 `feat/login-v2`,相对 `v1.4.2` 第 7 个 commit,SHA `abc1234`,
|
||||
构建时间 `202609181430`(带分钟,同一天重建才排得对):
|
||||
构建时间 `20260918T1430`(带分钟,同一天重建才排得对):
|
||||
|
||||
```text
|
||||
规范 / DEB 1.4.3~202609181430.feat-login-v2.7+gabc1234
|
||||
文件名 foo_1.4.3~202609181430.feat-login-v2.7+gabc1234_amd64.deb
|
||||
Docker registry/ns/foo:1.4.3-202609181430.feat-login-v2.7.gabc1234
|
||||
规范 / DEB 1.4.3~20260918T1430.feat-login-v2.7+gabc1234
|
||||
文件名 foo_1.4.3~20260918T1430.feat-login-v2.7+gabc1234_amd64.deb
|
||||
Docker registry/ns/foo:1.4.3-20260918T1430.feat-login-v2.7.gabc1234
|
||||
```
|
||||
|
||||
Docker tag 由规范版本映射:`~` → `-`,`+g` → `.g`(Docker 不允许 `~`)。
|
||||
无参 `apt upgrade` 会从上一正式版升到下一 patch 的测试包,但不会盖住同号
|
||||
正式包。生产若不能自动吃到测试包,应拆仓库/组件。构建时间取本机当前本地
|
||||
时间(含分钟);设了 `SOURCE_DATE_EPOCH` 则用该时刻的 UTC 时间。时间和日
|
||||
期之间不写分隔符:Debian 把字母排在标点之前,`20260918T1430` 会小于同日旧
|
||||
格式包的 `20260918.…`,同一天的包反而抢不到最新。`+g<sha>` 只用于记录
|
||||
commit、不参与排序:只写到日期时,同一天重复构建的版本只差 `+g<sha>`,
|
||||
Debian 版本比较把哈希当普通文本比,会把新包判成比旧包小。
|
||||
时间(含分钟);设了 `SOURCE_DATE_EPOCH` 则用该时刻的 UTC 时间。`+g<sha>`
|
||||
只用于记录 commit、不参与排序:只写到日期时,同一天重复构建的版本只差
|
||||
`+g<sha>`,Debian 版本比较把哈希当普通文本比,会把新包判成比旧包小。
|
||||
注意切换格式当天:Debian 把字母排在标点之前,`20260918T1430…` 小于旧格式
|
||||
的 `20260918.…`,同一天已上传的旧格式包仍会压住新包,需要在仓库里把那些
|
||||
旧包移除或停用;从第二天起新格式始终更大。
|
||||
|
||||
### 分支名清洗
|
||||
|
||||
|
||||
Reference in New Issue
Block a user