diff --git a/launcher-package/build.sbt b/launcher-package/build.sbt index c09fe1845b..436ab3c48d 100755 --- a/launcher-package/build.sbt +++ b/launcher-package/build.sbt @@ -70,13 +70,11 @@ val debianBuildId = settingKey[Int]("build id for Debian") val exportRepoUsingCoursier = taskKey[File]("export Maven style repository") val exportRepoCsrDirectory = settingKey[File]("") -val x86MacPlatform = "x86_64-apple-darwin" -val aarch64MacPlatform = "aarch64-apple-darwin" +val universalMacPlatform = "universal-apple-darwin" val x86LinuxPlatform = "x86_64-pc-linux" val aarch64LinuxPlatform = "aarch64-pc-linux" val x86WindowsPlatform = "x86_64-pc-win32" -val x86MacImageName = s"sbtn-$x86MacPlatform" -val aarch64MacImageName = s"sbtn-$aarch64MacPlatform" +val universalMacImageName = s"sbtn-$universalMacPlatform" val x86LinuxImageName = s"sbtn-$x86LinuxPlatform" val aarch64LinuxImageName = s"sbtn-$aarch64LinuxPlatform" val x86WindowsImageName = s"sbtn-$x86WindowsPlatform.exe" @@ -123,42 +121,30 @@ val root = (project in file(".")). file }, // update sbt.sh at root - sbtnVersion := "1.9.0", + sbtnVersion := "1.10.0", sbtnJarsBaseUrl := "https://github.com/sbt/sbtn-dist/releases/download", sbtnJarsMappings := { val baseUrl = sbtnJarsBaseUrl.value val v = sbtnVersion.value - val macosX86ImageTar = s"sbtn-$x86MacPlatform-$v.tar.gz" - val macosAarch64ImageTar = s"sbtn-$aarch64MacPlatform-$v.tar.gz" + val macosUniversalImageTar = s"sbtn-$universalMacPlatform-$v.tar.gz" val linuxX86ImageTar = s"sbtn-$x86LinuxPlatform-$v.tar.gz" val linuxAarch64ImageTar = s"sbtn-$aarch64LinuxPlatform-$v.tar.gz" val windowsImageZip = s"sbtn-$x86WindowsPlatform-$v.zip" val t = target.value - val macosX86Tar = t / macosX86ImageTar - val macosAarch64Tar = t / macosAarch64ImageTar + val macosUniversalTar = t / macosUniversalImageTar val linuxX86Tar = t / linuxX86ImageTar val linuxAarch64Tar = t / linuxAarch64ImageTar val windowsZip = t / windowsImageZip import dispatch.classic._ - if(!macosX86Tar.exists && !isWindows && sbtIncludeSbtn) { - IO.touch(macosX86Tar) - val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(macosX86Tar)) - try Http(url(s"$baseUrl/v$v/$macosX86ImageTar") >>> writer) + if(!macosUniversalTar.exists && !isWindows && sbtIncludeSbtn) { + IO.touch(macosUniversalTar) + val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(macosUniversalTar)) + try Http(url(s"$baseUrl/v$v/$macosUniversalImageTar") >>> writer) finally writer.close() - val platformDir = t / x86MacPlatform + val platformDir = t / universalMacPlatform IO.createDirectory(platformDir) - s"tar zxvf $macosX86Tar --directory $platformDir".! - IO.move(platformDir / "sbtn", t / x86MacImageName) - } - if(!macosAarch64Tar.exists && !isWindows && sbtIncludeSbtn) { - IO.touch(macosAarch64Tar) - val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(macosAarch64Tar)) - try Http(url(s"$baseUrl/v$v/$macosAarch64ImageTar") >>> writer) - finally writer.close() - val platformDir = t / aarch64MacPlatform - IO.createDirectory(platformDir) - s"tar zxvf $macosAarch64Tar --directory $platformDir".! - IO.move(platformDir / "sbtn", t / aarch64MacImageName) + s"tar zxvf $macosUniversalTar --directory $platformDir".! + IO.move(platformDir / "sbtn", t / universalMacImageName) } if(!linuxX86Tar.exists && !isWindows && sbtIncludeSbtn) { IO.touch(linuxX86Tar) @@ -192,8 +178,7 @@ val root = (project in file(".")). if (!sbtIncludeSbtn) Seq() else if (isWindows) Seq(t / x86WindowsImageName -> s"bin/$x86WindowsImageName") else - Seq(t / x86MacImageName -> s"bin/$x86MacImageName", - t / aarch64MacImageName -> s"bin/$aarch64MacImageName", + Seq(t / universalMacImageName -> s"bin/$universalMacImageName", t / x86LinuxImageName -> s"bin/$x86LinuxImageName", t / aarch64LinuxImageName -> s"bin/$aarch64LinuxImageName", t / x86WindowsImageName -> s"bin/$x86WindowsImageName") diff --git a/main/src/main/scala/sbt/internal/Banner.scala b/main/src/main/scala/sbt/internal/Banner.scala index 559f01ef1c..1ed7aa04bf 100644 --- a/main/src/main/scala/sbt/internal/Banner.scala +++ b/main/src/main/scala/sbt/internal/Banner.scala @@ -11,6 +11,16 @@ package sbt.internal private[sbt] object Banner { def apply(version: String): Option[String] = version match { + case v if v.startsWith("1.10.0") => + Some(s""" + |Here are some highlights of sbt 1.10.0: + | - SIP-51 support for Scala 2.13 evolution + | - Various Zinc fixes + | - ConsistentAnalysisFormat: new Zinc Analysis serialization + | - CommandProgress API + |See https://eed3si9n.com/sbt-1.10.0 for full release notes. + |Hide the banner for this release by running `skipBanner`. + |""".stripMargin.linesIterator.mkString("\n")) case v if v.startsWith("1.9.0") => Some(s""" |Here are some highlights of sbt 1.9.0: diff --git a/main/src/main/scala/sbt/internal/InstallSbtn.scala b/main/src/main/scala/sbt/internal/InstallSbtn.scala index 8278269923..693830f937 100644 --- a/main/src/main/scala/sbt/internal/InstallSbtn.scala +++ b/main/src/main/scala/sbt/internal/InstallSbtn.scala @@ -65,10 +65,16 @@ private[sbt] object InstallSbtn { if (Properties.isWin) "pc-win32.exe" else if (Properties.isLinux) "pc-linux" else "apple-darwin" - val isArmArchitecture: Boolean = sys.props - .getOrElse("os.arch", "") - .toLowerCase(java.util.Locale.ROOT) == "aarch64" - val arch = if (Properties.isLinux && isArmArchitecture) "aarch64" else "x86_64" + val isArmArchitecture: Boolean = { + val prop = sys.props + .getOrElse("os.arch", "") + .toLowerCase(java.util.Locale.ROOT) + prop == "arm64" || prop == "aarch64" + } + val arch = + if (Properties.isWin) "x86_64" + else if (Properties.isLinux && isArmArchitecture) "aarch64" + else "universal" val sbtnName = s"sbt/bin/sbtn-$arch-$bin" val fis = new FileInputStream(sbtZip.toFile) val zipInputStream = new ZipInputStream(fis) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index cc8e47accb..b622edf79c 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -12,10 +12,10 @@ object Dependencies { sys.env.get("BUILD_VERSION") orElse sys.props.get("sbt.build.version") // sbt modules - private val ioVersion = nightlyVersion.getOrElse("1.9.9") + private val ioVersion = nightlyVersion.getOrElse("1.10.0") private val lmVersion = - sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("1.10.0-RC1") - val zincVersion = nightlyVersion.getOrElse("1.10.0-RC2") + sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("1.10.0") + val zincVersion = nightlyVersion.getOrElse("1.10.0") private val sbtIO = "org.scala-sbt" %% "io" % ioVersion diff --git a/sbt b/sbt index e01edc50e9..9194dd4332 100755 --- a/sbt +++ b/sbt @@ -24,7 +24,7 @@ declare build_props_sbt_version= declare use_sbtn= declare no_server= declare sbtn_command="$SBTN_CMD" -declare sbtn_version="1.9.0" +declare sbtn_version="1.10.0" ### ------------------------------- ### ### Helper methods for BASH scripts ### @@ -182,8 +182,8 @@ acquire_sbtn () { exit 2 fi elif [[ "$OSTYPE" == "darwin"* ]]; then - archive_target="$p/sbtn-x86_64-apple-darwin-${sbtn_v}.tar.gz" - url="https://github.com/sbt/sbtn-dist/releases/download/v${sbtn_v}/sbtn-x86_64-apple-darwin-${sbtn_v}.tar.gz" + archive_target="$p/sbtn-universal-apple-darwin-${sbtn_v}.tar.gz" + url="https://github.com/sbt/sbtn-dist/releases/download/v${sbtn_v}/sbtn-universal-apple-darwin-${sbtn_v}.tar.gz" elif [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then target="$p/sbtn.exe" archive_target="$p/sbtn-x86_64-pc-win32-${sbtn_v}.zip"