Как сказать sbt использовать ночную сборку Scala 2.12 или 2.13?

Я хочу проверить свой код против последних кровоточащего края Scala nightlies.

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

Что мне делать?

1 ответов


Scala 2.12

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

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

на abcd123, вручную замените первые 7 символов SHA последней зеленой сборки на 2.12.х сук, на Трэвис-ки.

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

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

но команда публикует каждую ночь сборки, каждая со своим фиксированным номером версии. Номер версии nightly выглядит как, например,2.12.7-bin-abcd123. (-bin- сигнализирует двоичную совместимость с sbt; все 2.12.X выпуски начиная с 2.12.0 являются двоичными, совместимыми друг с другом.)

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

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

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

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

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

scalaVersion := "2.12.7-bin-abcd123"

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

enter image description here

как только будет выпущен 2.12.7, номер версии в nightly будет увеличиваться до 2.12.8 и так далее.

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

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

Scala 2.13

как и выше, но посмотрите на 2.13.х филиал для SHA, и номер версии начинается с 2.13.0-pre- (Примечание -pre- не -bin-, так как двоичный совместимость еще не заморожена для 2.13).

так, например, 2.13.0-pre-abcd123.

Scala 2.11

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