如何告诉SBT或Scala-cli使用Scala 2.12或2.13的夜间构建? [英] How do I tell sbt or scala-cli to use a nightly build of Scala 2.12 or 2.13?
问题描述
我想针对最新的尖端Scala 2夜间测试我的代码。
answer for Scala 2.10不再起作用。
我该怎么办?
推荐答案
Scala2.12或2.13
快速版本(SBT)
Global / resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
scalaVersion := "2.13.1-bin-abcd123"
对于2.12夜间,则为替身,例如,对于2.13.1
,则为2.12.9
;在任何一种情况下,它都是该分支上的下一个版本的版本号
对于abcd123
,请手动替身最新绿色版本on the 2.13.x or 2.12.x branch on Travis-CI的前7个字符。
快速版本(scala-cli)
在scala-cli 0.1.0或更高版本上
scala-cli repl -S 2.13.1-bin-abcd123
--repository https://scala-ci.typesafe.com/artifactory/scala-integration/
有关如何填写实际版本号的说明,请参阅上面的说明。
当然,repl
不仅有效,其他scala-cli子命令也有效。
详细说明
Scala团队不再发布-SNAPSHOT
版本的Scala。(重新开始可能是社区贡献;请参阅this ticket。)
但是团队确实每晚发布构建,每个构建都有自己的固定版本号。每晚的版本号如2.13.1-bin-abcd123
。(-bin-
表示与SBT二进制兼容;从2.13.0开始的所有2.13.x版本彼此都是二进制兼容的。)
以前基于Jenkins的旧答案不再适用,因为我们(在2018年)将《夜生活》的发布从Jenkins转移到了Travis-CI。
若要告诉SBT使用这些夜间模式之一,您需要做三件事。
首先,添加存放夜生活的解析器:
Global / resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
第二,指定Scala版本:
scalaVersion := "2.13.1-bin-abcd123"
但这不是真正的版本号。手动替身一个版本号,该版本号包含scala/scala repository中最后一次提交的7个字符的SHA,并为其发布夜间构建。查看https://travis-ci.org/scala/scala/branches,您将在2.13.x(或2.12.x)部分的右上角看到SHA。例如:
2.13.1一发布,夜间的版本号就会跳到2.13.2,以此类推。
如果您有多项目生成,请确保在修改生成定义时跨所有项目设置这些设置。或者,您可以使用++2.13.1-bin-abcd123
(SBT 0.13.x)或++2.13.1-bin-abcd123!
(SBT 1.x;添加的感叹号是强制使用crossScalaVersions
中未包含的版本所必需的)将它们临时设置在SBT shell中。
理想情况下,我们建议使用一种自动方式向Travis-CI索要正确的SHA。这大概可以通过Travis-CI的API来实现,但是(据我所知)还没有人研究过它。(有志愿者吗?)
请注意,我们非正式地将这些"夜间"构建称为"夜间"构建,但从技术上讲,这是一个用词不当的说法。为每个合并的PR构建一个所谓的"夜间"。
Scala 2.11
没有计划发布更多的2.11.x版本,因此我们(Lightbend的Scala团队)也不再发布2.11夜间报道。
这篇关于如何告诉SBT或Scala-cli使用Scala 2.12或2.13的夜间构建?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!