Skip to content

Commit

Permalink
Merge pull request #7551 from eed3si9n/wip/bump
Browse files Browse the repository at this point in the history
Zinc 1.10.0 + universal macOS sbtn binary
  • Loading branch information
eed3si9n committed May 6, 2024
2 parents 542f11b + bc4d583 commit d56e17b
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 38 deletions.
41 changes: 13 additions & 28 deletions launcher-package/build.sbt
Expand Up @@ -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"
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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")
Expand Down
10 changes: 10 additions & 0 deletions main/src/main/scala/sbt/internal/Banner.scala
Expand Up @@ -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:
Expand Down
14 changes: 10 additions & 4 deletions main/src/main/scala/sbt/internal/InstallSbtn.scala
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions project/Dependencies.scala
Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions sbt
Expand Up @@ -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 ###
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit d56e17b

Please sign in to comment.