我想每晚测试一下我的代码是否与最新的Scala 2或Scala 3兼容。(Or,我想使用一个实验性的Scala 3特性,该特性仅在夜间构建中可用。)我该怎么办?
xiozqbni1#
Scala 3夜间构建发布到Maven Central。您不需要添加特殊的冲突解决程序。如果你知道你想使用的nightly的完整版本号,你可以像使用其他Scala 3版本一样使用它。获取该版本号的一个快速方法是访问https://dotty.epfl.ch并查看左上角。另一种查找当前nightly的完整版本号的方法是使用scala-cli,如下所示。
在scala-cli 0.1.3或更高版本上,您可以使用以下命令运行nightlies:
scala-cli repl -S 3.3.nightly scala-cli repl -S 3.nightly # same as 3.3.nightly at present
当然,不仅repl可以工作,所有其他scala-cli子命令,如compile和run也可以工作。它还可以在脚本本身中使用//>指令,例如:
repl
compile
run
//>
//> using scala 3.nightly
Global / resolvers += "scala-integration" at "https://scala-ci.typesafe.com/artifactory/scala-integration/" scalaVersion := "2.13.10-bin-abcd123"
对于每晚2.12,用例如2.12.18用于2.13.10;在任何一种情况下,它都是该分支上 * 下一个 * 发行版的版本号对于abcd123,手动替换最新绿色版本on the 2.13.x or 2.12.x branch on Travis-CI的SHA的前7个字符。找到当前nightly的完整版本号的一种快速方法是使用scala-cli,如下所示。
2.12.18
2.13.10
abcd123
scala-cli repl -S 2.12.nightly scala-cli repl -S 2.13.nightly scala-cli repl -S 2.nightly # same as 2.13.nightly
当然,不仅repl可以工作,所有其他scala-cli子命令(如compile和run)也可以工作。它还可以在脚本本身中使用//>指令,例如:
//> using scala 2.nightly
Scala团队不再发布-SNAPSHOT版本的Scala。(重新开始可能是社区的贡献;参见this ticket。)但是团队确实会在夜间发布构建版本,每个版本都有自己的固定版本号。每晚的版本号看起来像这样。2.13.1-bin-abcd123。(-bin-向sbt发出二进制兼容性信号;自2.13.0以来的所有2.13.x版本都是二进制相互兼容的。)要告诉sbt使用其中的一个nightlies,你需要做三件事。首先,添加保存Nightlies的解析器:
-SNAPSHOT
2.13.1-bin-abcd123
-bin-
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,依此类推。如果有多项目生成,请确保在修改生成定义时跨所有项目设置这些设置。或者,您可以在sbt shell中使用++2.13.1-bin-abcd123(sbt 0.13.x)或++2.13.1-bin-abcd123!(sbt 1.x;添加的感叹号是强制使用不包含在crossScalaVersions中的版本所必需的)。理想情况下,我们会建议一种自动化的方式来向Travis-CI请求正确的SHA。这可能是通过Travis-CI的API实现的,但(据我所知)还没有人研究过它。有志愿者吗?)请注意,我们非正式地称这些为“夜间”构建,但从技术上讲,这是一个用词不当。为每个合并的PR构建所谓的“夜间”。
++2.13.1-bin-abcd123
++2.13.1-bin-abcd123!
crossScalaVersions
1条答案
按热度按时间xiozqbni1#
Scala 3
Scala 3夜间构建发布到Maven Central。您不需要添加特殊的冲突解决程序。
如果你知道你想使用的nightly的完整版本号,你可以像使用其他Scala 3版本一样使用它。
获取该版本号的一个快速方法是访问https://dotty.epfl.ch并查看左上角。
另一种查找当前nightly的完整版本号的方法是使用scala-cli,如下所示。
scala脚本
在scala-cli 0.1.3或更高版本上,您可以使用以下命令运行nightlies:
当然,不仅
repl
可以工作,所有其他scala-cli子命令,如compile
和run
也可以工作。它还可以在脚本本身中使用//>
指令,例如:Scala 2.12或2.13
快速版本(sbt)
对于每晚2.12,用例如
2.12.18
用于2.13.10
;在任何一种情况下,它都是该分支上 * 下一个 * 发行版的版本号对于
abcd123
,手动替换最新绿色版本on the 2.13.x or 2.12.x branch on Travis-CI的SHA的前7个字符。找到当前nightly的完整版本号的一种快速方法是使用scala-cli,如下所示。
快速版(scala-cli)
在scala-cli 0.1.3或更高版本上,您可以使用以下命令运行nightlies:
当然,不仅
repl
可以工作,所有其他scala-cli子命令(如compile
和run
)也可以工作。它还可以在脚本本身中使用//>
指令,例如:更详细的说明
Scala团队不再发布
-SNAPSHOT
版本的Scala。(重新开始可能是社区的贡献;参见this ticket。)但是团队确实会在夜间发布构建版本,每个版本都有自己的固定版本号。每晚的版本号看起来像这样。
2.13.1-bin-abcd123
。(-bin-
向sbt发出二进制兼容性信号;自2.13.0以来的所有2.13.x版本都是二进制相互兼容的。)要告诉sbt使用其中的一个nightlies,你需要做三件事。
首先,添加保存Nightlies的解析器:
其次,指定Scala版本:
但那不是真实的的版本号。在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,依此类推。
如果有多项目生成,请确保在修改生成定义时跨所有项目设置这些设置。或者,您可以在sbt shell中使用
++2.13.1-bin-abcd123
(sbt 0.13.x)或++2.13.1-bin-abcd123!
(sbt 1.x;添加的感叹号是强制使用不包含在crossScalaVersions
中的版本所必需的)。理想情况下,我们会建议一种自动化的方式来向Travis-CI请求正确的SHA。这可能是通过Travis-CI的API实现的,但(据我所知)还没有人研究过它。有志愿者吗?)
请注意,我们非正式地称这些为“夜间”构建,但从技术上讲,这是一个用词不当。为每个合并的PR构建所谓的“夜间”。