Update Ch21

This commit is contained in:
Unisko PENG 2023-04-11 16:51:21 +08:00
parent 547393ea43
commit a957d08fd7

View File

@ -634,4 +634,58 @@ Rust 的开发,是运作在 *火车时刻表train schedule* 上的。那就
多数 Rust 开发者主要使用稳定通道,而那些希望尝试实验性新特性的人们,则会使用每日发布或 beta 通道。
下面是个开发与发布流程运作方式的一个示例:咱们来假定 Rust 团队正工作于 Rust 1.5 的发布上。那个发布发生于 2015 年 11 月,但其将提供到我们实际版本数字。有个新特性被添加到 Rust一次新提交落在了 `master` 分支。每天晚上,都有一个新的 Rust 每日版本被产生出来。每天都是个发布日,而这些发布是由咱们的发布基础设施自动创建的。因此随着时间流逝,咱们的发布看起来就像下面这样,每晚一次:
```text
nightly: * - - * - - *
```
每隔六周便是要准备一个新发布的时候了Rust 代码仓库的 `beta` 分支,便会从由每日发布所使用的 `master` 分支分叉开来。现在,就有了两个分支:
```text
nightly: * - - * - - *
|
beta: *
```
多数 Rust 使用者不会积极使用这些 beta 发布,但会在他们的 CI 系统中就 beta 发布加以测试,以帮助 Rust 发现可能出现的倒退。与此同时,仍有着每晚的每日发布:
```text
nightly: * - - * - - * - - * - - *
|
beta: *
```
在首个 beta 版创建出来六周后,就是稳定发布的时候了!`stable` 分支就被从 `beta` 分支创建出来:
```text
nightly: * - - * - - * - - * - - * - - * - * - *
|
beta: * - - - - - - - - *
|
stable: *
```
Rust 1.5 便完成了!不过,咱们忘了一件事:由于这六个星期以及过去,而咱们还需要 Rust *下一* 版本1.6,的一个新的 beta 发布。因此在 `stale` 分支从 `beta` 分支分叉出来后,下一版本的 `beta` 又会从 `nightly` 再度分叉出来:
```text
nightly: * - - * - - * - - * - - * - - * - * - *
| |
beta: * - - - - - - - - * *
|
stable: *
```
每六周就有一个发布 “离站”,但发布过程仍务必要在其抵达稳定发布前,经由这个 beta 通道行驶一段路程,由此这个过程便被称为 “列车模型”。
Rust 每六周发布,像时刻表一样。若咱们知道了一个 Rust 发布的日期,那么就能直到下一发布的日期:那便是六周后。每六周安排一次发布的一个好处,便是下一班列车很快就会到来。若某项特性刚好错过了某个特定发布,那么无需担心:另一发布将在不久后发生!这有助于减少在临近发布截止日期时,有可能未完善的功能偷偷潜入的压力。
归功于这个流程咱们可以始终检出check out下一构建的 Rust并自己验证到升级是容易的若 beta 发布没有如预期那样工作,咱们就可以将其报告给 Rust 团队并在下一稳定发布发生前修好他beta 发布中的损坏相对较少,但 `rustc` 仍属于一个软件,而确实存在一些错误。
### 不稳定特性
**Unstable Features**
这种发布模型下,还有一个好处:不稳定特性。