发布途径

release-channels.md
commit ccb1d87d6faa9ff528d22b96595a0e2cbb16c0f2

Rust 项目使用一个叫做“发布途径”的概念来管理发布。理解这个选择你的项目应该使用哪个版本的 Rust 的过程是很重要的。

概览

Rust 发布有 3 种途径:

  • 开发版(Nightly)
  • 测试版(Beta)
  • 稳定版(Stable)

新的开发发布每天创建一次。每 6 个星期,最后的开发版被提升为“测试版”。在这时,它将只会收到修改重大错误的补丁。6 个星期之后,测试版被提升为“稳定版”,而成为下一个版本的1.x发布。

这个过程并行发生。所以每 6 个星期,在同一天,开发变测试,测试变稳定。当1.x发布时的同时,1.(x + 1)-beta被发布,而开发版变为第一版的1.(x + 2)-nightly

选择一个版本

通常来说,除非你有一个特定的原因,你应该使用稳定发布途径。这个发布意为用于普通用户。

然而,根据你对Rust的兴趣,你可能会选择使用开发构建。基本的权衡是:在开发途径,你可以使用不稳定的,新的Rust功能。然而,不稳定功能倾向于改变,所以任何新的开发版发布可能会破坏你的代码。如果你使用稳定发布,你不能使用实验功能,不过下一个Rust发布将不会因为破环性改变造成显著的问题。

通过持续集成(CI)改善生态系统

那么测试版怎么样呢?我们鼓励所有使用稳定发布途径的 Rust 用户在他们的持续集成系统中也针对测试途径进行测试。这会帮助警告团队以防出现一个意外的退步(regression)。

另外,针对开发版测试能够更快的捕获退步,因此如果你不介意一个第三种构建(环境),我们也会感激你针对开发版进行测试。

作为一个例子,很多 Rust 程序猿使用Travis来测试他们的 crate,这是一个开源的免费项目。Travis直接支持Rust,并且你可以用类似这样的一个.travis.yml文件来测试所有的版本:

  1. language: rust
  2. rust:
  3. - nightly
  4. - beta
  5. - stable
  6. matrix:
  7. allow_failures:
  8. - rust: nightly

通过这个配置,Travis 将会测试所有三个版本,不过如果有什么东西在开发版中失败了,你的构建将不会失败。建议你在任何 CI 系统中使用类似的配置,查看你正在使用的 CI 系统的文档来获取更多细节。