Как я могу сказать sbt использовать ночные сборки Scala 2.12 или 2.13?

Я хочу проверить свой код на соответствие новейшим ночным играм Scala.

Ответ для Scala 2.10 больше не работает.

Что я делаю?

Ответ 1

Scala 2.12 или 2.13

быстрая версия

resolvers += "scala-integration" at
  "https://scala-ci.typesafe.com/artifactory/scala-integration/"
scalaVersion := "2.13.1-bin-abcd123"

для 2.12 по ночам замените, например, 2.12.9 на 2.13.1; в любом случае это номер версии следующего выпуска в этой ветке

для abcd123 вручную замените первые 7 символов SHA последней зеленой сборки в ветки 2.13.x или 2.12.x на Travis-CI.

более длинное объяснение

Команда Scala больше не публикует -SNAPSHOT версии Scala. (Начиная это снова может быть вклад сообщества; см. Этот билет.)

Но команда публикует ночные сборки, каждая со своим фиксированным номером версии. Номер версии 2.13.1-bin-abcd123 выглядит, например, как 2.13.1-bin-abcd123. (-bin- сигнализирует двоичную совместимость с sbt; все версии 2.13.x, начиная с 2.13.0, двоично совместимы друг с другом.)

Старый ответ Дженкинса, который раньше был здесь, больше не работает, так как мы (в 2018 году) перенесли публикацию ночных еженедельников с Дженкинса на Travis-CI.

Чтобы сказать sbt использовать одну из этих ночных команд, вам нужно сделать три вещи.

Сначала добавьте распознаватель, где хранятся ночные нити:

resolvers += "scala-integration" at
  "https://scala-ci.typesafe.com/artifactory/scala-integration/"

Во-вторых, укажите версию Scala:

scalaVersion := "2.13.1-bin-abcd123"

Но это не настоящий номер версии. Вручную подставьте номер версии, содержащий 7-символьный SHA последнего коммита в репозитории scala/scala, для которого была опубликована ночная сборка. Посмотрите на https://travis-ci.org/scala/scala/branches, и вы увидите SHA в верхнем правом углу раздела 2.13.x (или 2.12.x). Например:

enter image description here

Как только выйдет 2.13.1, номер версии в ночном режиме повысится до 2.13.2 и так далее.

Если у вас многопроектная сборка, убедитесь, что вы установили эти параметры во всех проектах при изменении определения сборки. Или вы можете временно установить их в оболочке sbt с помощью ++2.13.1-bin-abcd123 (sbt 0.13.x) или ++2.13.1-bin-abcd123! (sbt 1.x; добавленный восклицательный знак необходим для принудительного использования версии, не включенной в crossScalaVersions).

В идеале, мы бы предложили автоматизированный способ запросить у Travis-CI правильный SHA. Это возможно, возможно, через Travis-CI API, но (насколько мне известно) никто еще не изучал это. (Есть волонтер?)

Scala 2.14

По состоянию на июль 2019 года в репо Scala еще не было ветки 2.14.x, но после этого будут применяться следующие инструкции:

Как и выше, но посмотрите на ветку 2.14.x для SHA, и номер версии начинается с 2.14.0-pre- (примечание -pre- not -bin-, так как двоичная совместимость еще не заморожена для 2.14).

Так, например, 2.14.0-pre-abcd123.

Scala 2.11

Хотя дальнейшие выпуски 2.11.x остаются возможными, ни один из них не запланирован, поэтому мы (команда Scala в Lightbend) больше не публикуем ночные версии 2.11.