1
1
package scala .build .options
2
2
import coursier .cache .{ArchiveCache , FileCache }
3
- import coursier .core .Version
3
+ import coursier .core .{ Version , Versions => CoreVersions }
4
4
import coursier .jvm .{JavaHome , JvmCache , JvmIndex }
5
5
import coursier .util .{Artifact , Task }
6
6
import coursier .{Module , Versions }
@@ -386,13 +386,25 @@ final case class BuildOptions(
386
386
(scalaVersion, scalaBinaryVersion)
387
387
}
388
388
389
+ private def latestScalaVersionFrom (
390
+ versions : CoreVersions ,
391
+ desc : String
392
+ ): Either [scala.build.errors.ScalaVersionError , String ] =
393
+ versions.latest(coursier.core.Latest .Release ) match {
394
+ case Some (versionString) => Right (versionString)
395
+ case None =>
396
+ val msg =
397
+ s " Unable to find matching version for $desc in available version: ${versions.available.mkString(" , " )}. " +
398
+ " This error may indicate a network or other problem accessing repository."
399
+ Left (new ScalaVersionError (msg))
400
+ }
401
+
389
402
/** @return
390
403
* Either a BuildException or the calculated (ScalaVersion, ScalaBinaryVersion) tuple
391
404
*/
392
405
private def computeLatestScalaThreeNightlyVersions (): Either [BuildException , (String , String )] =
393
406
either {
394
407
import coursier .Versions
395
- import coursier .core .Latest
396
408
import coursier ._
397
409
398
410
val moduleVersion : Either [ScalaVersionError , String ] = {
@@ -403,10 +415,7 @@ final case class BuildOptions(
403
415
.result()
404
416
.unsafeRun()(finalCache.ec)
405
417
}
406
- res.versions.latest(Latest .Release ) match {
407
- case Some (versionString) => Right (versionString)
408
- case None => Left (new NetworkUnaccessibleScalaVersionError (None ))
409
- }
418
+ latestScalaVersionFrom(res.versions, " latest Scala 3 nightly build" )
410
419
}
411
420
412
421
val scalaVersion = value(moduleVersion)
@@ -420,7 +429,6 @@ final case class BuildOptions(
420
429
private def computeLatestScalaTwoNightlyVersions (): Either [BuildException , (String , String )] =
421
430
either {
422
431
import coursier .Versions
423
- import coursier .core .Latest
424
432
import coursier ._
425
433
426
434
val moduleVersion : Either [ScalaVersionError , String ] = {
@@ -432,10 +440,7 @@ final case class BuildOptions(
432
440
.result()
433
441
.unsafeRun()(finalCache.ec)
434
442
}
435
- res.versions.latest(Latest .Release ) match {
436
- case Some (versionString) => Right (versionString)
437
- case None => Left (new NetworkUnaccessibleScalaVersionError (None ))
438
- }
443
+ latestScalaVersionFrom(res.versions, " latest Scala 2 nightly build" )
439
444
}
440
445
441
446
val scalaVersion = value(moduleVersion)
0 commit comments