有人可以向我解释每晚Rust的“生产”情况如何吗?
我想使用PyO3 crate ,该板箱使用需要每晚Rust的specialization功能。
使用每晚版本的Rust可以进行生产吗?我知道将来的发行版中可能会发生问题,并且可能会引入API更改,但是就质量/测试/生产就绪而言,每晚安全吗?
从this thread on Rust users看来,只要我限制非稳定功能的使用(例如仅用于特化),我应该会很好吗?
最佳答案
显然,每晚没有稳定保证,这使此问题与George Berkeley提出的问题重复一次。
但是,夜间编译器非常稳定:对master分支的每个更改(即使是最平凡的更改)(从中每晚删除)都通过CI,CI执行完整的测试套件,该套件必须通过。如果更改破坏了以前的工作,则在master上没有“我们稍后将解决此问题”。
其次,重大变化-像std::collections
和std::sync
的最新变化一样-经历了火山口运行,在火山口运行中建立了相当一部分可公开获得的Rust代码;如果PR破坏了以前没有发生过的事情,它就不会在夜间降落。最后但并非最不重要的一点是,许多rust项目每晚都使用计划的CI,而该项目及其相关性每月都会构建和测试一次。像rocket
这样的项目每天晚上都在运行,如果每晚引入回归或错误,很快就会发现它。所有这些都意味着您每晚的front suddenly falls off可能性很小
但是,对于需要每晚进行的不稳定功能,情况有所不同。语义可以改变,曾经起作用的代码可能无法或多或少地突然编译。但是,更改很少会导致静默故障,先前定义的行为变得不确定等,这种情况通常极不可能发生。
因此,一种常见的策略是选择每晚的特定版本(假设为“2019-05-09”),并坚持使用该版本一整段时间。
Addon:我的目的是要明确指出“每晚能否可靠地编译事物”之间是有区别的吗?和“每晚编制的内容可靠吗?”对于这两者,我都会提出一个有力的论据,重点是第二点:1)是的,大部分时间每晚都可以编译您的代码。 2)由于行为的细微变化或彻底的错误编译,极不可能每晚进行的编译都是不可靠的。
关于rust - 在生产中每晚使用Rust,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56066765/