发布途径

release-channels.md
commit 024aa9a345e92aa1926517c4d9b16bd83e74c10d

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文件来测试所有的版本:

language: rust
rust:
  - nightly
  - beta
  - stable

matrix:
  allow_failures:
    - rust: nightly

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


书籍推荐