在生产中每晚使用Rust

时间:2019-05-09 20:02:01

标签: rust production rustc

有人可以向我解释每晚的“生产” Rust情况如何吗?

我想使用PyO3板条箱,该板条箱使用需要每晚Rust进行的specialization功能。

使用每晚版本的Rust可以进行生产吗?我知道将来的发行版中可能会发生问题,可能会引入API更改,但是就质量/测试/生产就绪而言,每晚安全吗?

this thread on Rust users看来,只要我限制非稳定功能的使用(例如,仅用于专业化),就可以了吗?

1 个答案:

答案 0 :(得分:3)

很明显,每晚没有稳定保证,这使该问题与George Berkeley提出的问题重复了一次。

但是,夜间编译器非常稳定:对master分支的每个更改,即使是最平凡的更改(每晚都会从该分支中​​删除)都要经过CI,CI会执行必须通过的完整测试套件。如果更改破坏了以前的工作,则在master上没有“我们稍后将解决此问题”。 其次,重大变更-例如最近对std::collectionsstd::sync进行的变更-进行了火山口试验,在其中建立了相当一部分可公开获得的Rust代码;如果PR破坏了以前没有发生过的事情,它就不会在夜间降落。最后但并非最不重要的一点是,许多rust项目每晚都使用计划的CI,而该项目及其依赖项每个月都会构建和测试一次。诸如rocket之类的项目始终在夜间运行,并且如果在夜间引入回归或错误,很快就会发现它。所有这些都意味着您的front suddenly falls off每晚不太可能

不过,对于需要每晚使用的不稳定功能,情况有所不同。语义可以改变,曾经起作用的代码可能无法或多或少地突然编译。但是,更改通常不会导致静默故障,先前定义的行为变得不确定等,这种可能性很小。

因此,一种常见的策略是选择每晚的特定版本(假设为“ 2019-05-09”)并坚持使用该版本一段时间。

插件:我的意图是弄清楚“每晚能否可靠地编译事物?”之间存在区别。和“每晚编制的内容可靠吗?”对于这两者,我都会有一个很强的论据,重点是第二点:1)是的,大多数时间每晚都可以编译您的代码。 2)由于行为的细微变化或完全错误的编译,每晚进行编译的事情不太可能不可靠。