1. sbt 1.0.x 版本

sbt 1.0.x 版本 

sbt 1.0.4 

這是 sbt 1.0.x 系列的熱修補版本。

錯誤修正 

  • 修正在基礎類型變更時,值類別的編譯不足問題。zinc#444,由 @smarter 提供。
  • 修正當在 Java 9 上執行時,Ivy 會發生的 ArrayIndexOutOfBoundsException 錯誤。ivy#27,由 @xuwei-k 提供。
  • 透過升級到啟動器 1.0.2,修正 Java 9 警告。ivy#26/launcher#45,由 @dwijnand 提供。
  • 修正在 Java 9 上執行時的 -jvm-debuglauncher-package197,由 @mkurz 提供。
  • 修正 run 輸出偵錯層級記錄。#3655/#3717,由 @cunei 提供。
  • 修復類別路徑雜湊造成的效能回歸問題。zinc#452,由 @jvican 提供,@fommil 提供重現,@eed3si9n 修正 https://github.com/sbt/zinc/issues/457。
  • 修復 testQuick 的效能回歸問題。#3680/#3720,由 @OlegYch 提供。
  • 為了修復 #3711 中報告的效能回歸問題,停用 Ivy log4j 呼叫者位置計算。util#132,由 @leonardehrenfried 提供。
  • 解決 Scala 編譯器的 templateStats() 並非執行緒安全的問題。#3743,由 @cunei 提供。
  • 修正「嘗試覆寫」錯誤訊息。lm#174,由 @dwijnand 提供。
  • 修正不正確的驅逐警告訊息。lm#179,由 @xuwei-k 提供。
  • 僅為 http:https: 註冊 Ivy 通訊協定,使其更友善於外掛程式。lm183,由 @tpunder 提供。
  • 透過使用 expr,修正與 bc 相關的腳本問題。launcher-package#199,由 @thatfulvioguy 提供。

增強功能 

內部 

貢獻者 

非常感謝每一位透過使用 sbt 和 Zinc 1、回報錯誤、改進我們的文件、移植建置、移植外掛程式,以及提交和審查提取要求,協助改進 sbt 和 Zinc 1 的人。

根據 sbt、zinc、librarymanagement、util、io 和網站上的 git shortlog -sn --no-merges v1.0.3..v1.0.4,此版本由 17 位貢獻者帶給您:Eugene Yokota、Kenji Yoshida (xuwei-k)、Jorge Vicente Cantero (jvican)、Dale Wijnand、Leonard Ehrenfried、Antonio Cunei、Brett Randall、Guillaume Martres、Arnout Engelen、Fulvio Valente、Jens Grassel、Matthias Kurz、OlegYch、Philippus Baalman、Sam Halliday、Tim Underwood、Tom Most。謝謝!


sbt 1.0.3 

這是 sbt 1.0.x 系列的熱修補版本。

錯誤修正 

  • 修復 ~ 在迴圈中重新編譯(當存在來源產生器或 sbt-buildinfo 時)。#3501/#3634,由 @dwijnand 提供。
  • 修正相同來源繼承時的編譯不足問題。zinc#424,由 @eed3si9n 提供。
  • 修正套件保護物件的編譯問題。zinc#431,由 @jvican 提供。
  • 解決 Java 為 getGenericParameterTypes 傳回 null 的問題。zinc#446,由 @jvican 提供。
  • 修復測試偵測回歸問題。sbt 1.0.3 從清單中篩除巢狀物件/類別,恢復與 0.13 的相容性。#3669,由 @cunei 提供。
  • 為建置定義使用 Scala 2.12.4。這包含修正 Java 9 下空的套件成員的執行階段反射問題。#3587,由 @eed3si9n 提供。
  • 修正 Ivy 樣式模式中額外的 /lm#170,由 @laughedelic 提供。
  • 透過包含檔案名稱,修正「目的地檔案已存在」錯誤訊息。lm171,由 @leonardehrenfried 提供。
  • 修正函式庫管理模組和 Ivy 中的 JDK 9 警告「不合法的反射存取」。lm173,由 @dwijnand 提供。

改進 

  • 新增 sbt.watch.mode 系統屬性,以允許切換回舊的輪詢行為進行監看。請參閱下方以了解更多詳細資訊。

替代監看模式 

sbt 1.0.0 引入了一種新的機制,用於根據 Java 1.7 中的 NIO WatchService 監看來源變更。在某些平台上(尤其是 macOS),這會導致在擷取變更之前出現長時間的延遲。針對這些平台,sbt 1.1.0 計劃推出替代的 WatchService#3527),同時新增了一個選項來選擇使用哪個監看服務。

新增了新的 sbt.watch.mode JVM 旗標,並支援下列值

  • polling:(macOS 的預設值)輪詢檔案系統以進行變更(sbt 0.13 中使用的機制)。
  • nio(其他平台的預設值):使用基於 NIO 的 WatchService

如果您在非 macOS 機器上遇到長時間的延遲,請嘗試將 -Dsbt.watch.mode=polling 新增至您的 sbt 選項。

#3597,由 @stringbean 提供。

貢獻者 

非常感謝每一位透過使用 sbt 和 Zinc 1、回報錯誤、改進我們的文件、移植建置、移植外掛程式,以及提交和審查提取要求,協助改進 sbt 和 Zinc 1 的人。

根據 sbt、zinc、librarymanagement、util、io 和網站上的 git shortlog -sn --no-merges v1.0.2..v1.0.3,此版本由 15 位貢獻者帶給您:Eugene Yokota、Dale Wijnand、Michael Stringer、Jorge Vicente Cantero (jvican)、Alexey Alekhin、Antonio Cunei、Andrey Artemov、Jeffrey Olchovy、Kenji Yoshida (xuwei-k)、Dominik Winter、Long Jinwei、Arnout Engelen、Justin Kaeser、Leonard Ehrenfried、Sakib Hadžiavdić。謝謝!


sbt 1.0.2 

這是 sbt 1.0.x 系列的熱修補版本。

錯誤修正 

  • 修正終端機回音問題。#3507,由 @kczulko 提供。
  • 修正 deliver 任務,並新增 makeIvyXml 作為名稱更合理的任務。#3487,由 @cunei 提供。
  • 取代已棄用的 OkUrlFactory 使用方式,並修正連線洩漏問題。lm#164,由 @dpratt 提供。
  • 重新修復用於設定金鑰的 DSL 檢查器中的誤判。#3513,由 @dwijnand 提供。
  • 修正 runbgRun 未擷取類別路徑中目錄變更的問題。#3517,由 @dwijnand 提供。
  • 修正 ++,使其不會變更 crossScalaVersion 的值。#3495/#3526,由 @dwijnand 提供。
  • 修正 sbt 伺服器遺失某些訊息的問題。#3523,由 @guillaumebort 提供。
  • 修正 consoleProjectzinc#386 by @dwijnand
  • 新增 JVM 旗標 sbt.gigahorse,以啟用/停用內部使用 Gigahorse 來解決與 repositories 覆寫一起使用時,JavaNetAuthenticator 中發生的 NPE 問題。lm#167 by @cunei
  • 新增 JVM 旗標 sbt.server.autostart,以啟用/停用在 sbt shell 中自動啟動 sbt 伺服器的功能。同時也新增了 startServer 命令來手動啟動伺服器。 by @eed3si9n

內部 

貢獻者 

非常感謝所有透過使用 sbt 和 Zinc 1、回報錯誤、改善我們的文件、移植外掛程式,以及提交和審閱 pull request 來協助改進 sbt 和 Zinc 1 的每個人。

這次的發布由 19 位貢獻者共同完成,根據 sbt、zinc、librarymanagement 和網站上的 git shortlog -sn --no-merges v1.0.1..v1.0.2 結果:Dale Wijnand、Eugene Yokota、Kenji Yoshida (xuwei-k)、Antonio Cunei、David Pratt、Karol Cz (kczulko)、Amanj Sherwany、Emanuele Blanco、Eric Peters、Guillaume Bort、James Roper、Joost de Vries、Marko Elezovic、Martynas Mickevičius、Michael Stringer、Răzvan Flavius Panda、Peter Vlugter、Philippus Baalman 和 Wiesław Popielarski。謝謝你們!


sbt 1.0.1 

這是 sbt 1.0.x 系列的熱修補版本。

錯誤修正 

  • 修正了 cross building + 命令的命令支援。在 sbt 1.0 中加入的 + 會遍歷子專案,並尊重 crossScalaVersions;然而,它不再接受命令作為參數。此修正恢復了對此功能的支持。#3446 by @jroper
  • 修正了 addSbtPlugin 在 cross building 期間使用正確的 sbt 版本的問題。 #3442 by @dwijnand
  • 修正了 run in Compile 任務未包含 Runtime 配置的問題,透過使用 bgRun 重新實作 run 來解決。 #3477 by @eed3si9n
  • 顯示 actual 作為 inspect 的潛在選項 #3335 by @Duhemm
  • 將基本目錄包含到被監看的來源中。 #3439 by @Duhemm
  • 嘗試解決間歇性發生的 NullPointerException 日誌記錄問題。 util#121 by @eed3si9n
  • 還原錯誤的前向移植。 #3481 by @eed3si9n

WatchSource 

監看來源功能從 sbt 0.13 到 sbt 1.0 經歷了使用 NIO 的重大變更;然而,它沒有清晰的遷移路徑,因此我們在 sbt 1.0.1 中修正了這個問題。

首先,sbt.WatchSourcesbt.internal.io.Source 的新別名。希望這很容易記住,因為鍵的名稱是 watchSources。接下來,def apply(base: File)def apply(base: File, includeFilter: FileFilter, excludeFilter: FileFilter) 建構子被新增到 sbt.WatchSource 的伴生物件中。

為了向後相容,sbt 1.0.1 新增了從 FileSeq[WatchSource]+= 支援 (Append 實例)。

因此,如果您有一個想要監看的目錄

watchSources += WatchSource(sourceDirectory.value)

如果您有一個檔案清單

watchSources ++= (sourceDirectory.value ** "*.scala").get

#3438 by @Duhemm; #3478io#74 by @eed3si9n


sbt 1.0.0 

功能、修正、具有相容性含意的變更 

另請參閱 從 sbt 0.13.x 遷移

  • sbt 1.0 使用 Scala 2.12 作為建置定義和外掛程式。這也需要 JDK 8。
  • 許多 case class 被使用 Contraband 產生的偽 case class 取代。將 .copy(foo = xxx) 遷移至 withFoo(xxx)。例如,UpdateConfigurationRetrieveConfigurationPublishConfiguration 被重構為使用 builder 模式。
  • Zinc 1 放棄對 Scala 2.9 及更早版本的支援。Scala 2.10 必須使用 2.10.2 及以上版本。Scala 2.11 必須使用 2.11.2 及以上版本。(建議使用最新的修補程式版本)
  • config("xyz") 必須直接賦值給大寫val,例如 val Xyz = config("xyz")。這會將 lhs 識別符號捕獲到配置中,以便我們稍後可以從 shell 中使用它。
  • publishTootherResolvers 從 SettingKeys 變更為 TaskKeys。 #2059/#2662 by @dwijnand
  • Path.relativizeFile(baseFile, file) 被重新命名為 IO.relativizeFile(baseFile, file)
  • PathFinder.*** 方法被重新命名為 .allPaths 方法。
  • PathFinder.x_!(mapper) 被移動到 PathFinder 上的 def pair
  • 由於混合到 sbt 套件物件中,sbt.Path 上的許多方法(例如 relativeTorebaseflat)現在不再位於預設命名空間中。使用 sbt.io.Path 可以再次存取它們。
  • sbt 1.0 將作為範圍元件的 Global 重新命名為 Zero,以消除與 GlobalScope 的歧義。 @eed3si9n
  • sbt 1.0 在使用 String 來引用配置的地方使用 ConfigRef,例如 update.value.configuration(...)。傳入 Configuration,它會隱式轉換為 ConfigRef
  • sourceArtifactTypesdocArtifactTypesSet[String] 變更為 Seq[String] 設定。
  • 將早期命令功能從 --<command> 重新命名為 early(<command>)
  • 刪除 sbt 0.12 樣式的連字符分隔的鍵名稱 (使用 publishLocal 而不是 publish-local)。
  • 記錄選項 -error-warn-info-debug 被新增為 "early(error)" 等的簡寫。
  • sbt.Processsbt.ProcessExtra 被刪除。改用 scala.sys.process
  • incOptions.value.withNameHashing(...) 選項被移除,因為名稱雜湊功能始終開啟。
  • TestResult.Value 現在稱為 TestResult
  • scripted 外掛程式現在是跨版本的,因此當您依賴它時必須使用 %%

刪除已棄用的項目:

  • sbt 0.12 樣式的 Build 特徵在 sbt 0.13.12 中已被棄用,現已移除。請遷移到 build.sbt。自動外掛程式和 Build 特徵無法很好地協同工作,並且它的功能現在很大程度上被多專案 build.sbt 取代。
  • sbt 0.12 樣式的 Project(...) 建構子被限制為兩個參數。這是因為 settings 參數無法與自動外掛程式很好地協同工作。改用 project
  • sbt 0.12 樣式的鍵依賴項運算符 <<=<+=<++= 已移除。請遷移到 :=、+= 和 ++=。這些運算符長期以來一直是許多使用者的困惑來源,並且早已從 0.13 文件中刪除,並且自 sbt 0.13.13 以來已正式棄用。
  • 非自動的 sbt.Plugin 特徵已刪除。請遷移到 AutoPlugin。自動外掛程式更容易設定,並且彼此之間可以更好地協同工作。
  • Project 中移除 settingsSets 方法(以及 add/setSbtFiles)。
  • 刪除已棄用的 InputTask apply 方法和 inputTask DSL 方法。使用 Def.inputTaskDef.spaceDelimited().parsed
  • 刪除已棄用的 ProjectReference 隱式提升。使用 RootProject(<uri>)RootProject(<file>)LocalProject(<string>)
  • 刪除已棄用的 seq(..) DSL 方法。使用 Seq 或傳入設定而不需包裝。
  • 刪除已棄用的 File/Seq[File] 設定擴充。使用 .valueDef.setting
  • 刪除已棄用的 SubProcess apply 多載。使用 SubProcess(ForkOptions(runJVMOptions = ..))
  • 刪除 toError(opt: Option[String]): Unit (等同於 opt foreach sys.error);如果用於包裝 ScalaRun#run,則替換為 scalaRun.run(...).failed foreach (sys error _.getMessage)

功能 

  • 新的增量編譯器稱為 Zinc 1。詳情如下。
  • 互動式 shell 新增了網路 API。詳情如下。

修正 

改進 

  • Scala Center 貢獻了一個 Java 友善的 Zinc API。這是對 Zinc 內部 API 的全面修訂,以便與其他建置工具良好地整合 Scala。 zinc#304 by @jvican
  • Scala Center 為 Zinc 的內部儲存貢獻了一種二進位格式。請參閱下文
  • Scala Center 貢獻了 build.sbt 的靜態驗證。請參閱下文
  • 程式庫管理 API 和並行工件下載。請參閱下文。
  • 在使用 scalas 的腳本模式下,啟動日誌級別被降至 -error#840 by @eed3si9n
  • 使用 sbt-doge 取代 cross building 支援。這允許使用具有多種不同跨 Scala 版本組合的專案的建置專案正確地進行 cross build。++ 的行為已變更,因此它只會更新支援該 Scala 版本的專案的 Scala 版本,但 Scala 版本可以附加 ! 以強制其變更所有專案。新增了一個 -v 參數,它會列印詳細資訊,說明哪些專案正在變更其設定以及它們的跨 Scala 版本。 #2613 by @jroper
  • 當偵測到 CI 環境時,ivyLoggingLevel 將降至 UpdateLogging.Quiet@eed3si9n
  • 新增了對使用的不同 build.sbt(符合 *.sbt)檔案的名稱記錄。 #1911 by @valydia
  • 新增在建置 sbt 檔案內為目前專案呼叫 aggregate 的功能。By @xuwei-k
  • 新增新的全域設定 asciiGraphWidth,用於控制由 inspect tree 等命令列印的 ASCII 圖的最大寬度。預設值對應於先前硬編碼的 40 個字元的值。By @RomanIakovlev
  • 改版了 Scopes 的文件,並新增了 Scope Delegation@eed3si9n
  • 移植 sbt-cross-building 的 ^^^ 命令用於外掛程式 cross building。請參閱下文。
  • 新增對跨版本排除的支援。 #1518/lm#88 by @jvican
  • 為基於 Ivy 的函式庫管理新增離線模式。lm#92@jvican 貢獻。
  • 多項與依賴鎖定相關的功能。詳見下文。
  • 改善了逐出警告的呈現方式。詳見下文。
  • 更佳的主類別偵測。zinc#287@smarter 貢獻。
  • 為了加快啟動速度,sbt 將使用 Java 反射來發現 autoImport#3115@jvican 貢獻。
  • 為了加快啟動速度,重複使用相同的全域實例進行解析。#3115@jvican 貢獻。
  • 從 sbt-core-next 新增 InteractionService,以保持與 sbt 0.13 的相容性。#3182@eed3si9n 貢獻。
  • 新增抽象 PollingWatchService 和 Java NIO 的 WatchServiceio#47@Duhemm 代表 Scala Center 貢獻。
  • 新增接受 sbt.io.CopyOptions()IO.copyFileIO.copyDirectory 變體。詳情請見下文。
  • Path.directoryPath.contentOf 是從 sbt-native-packager 捐贈的。io#38@muuki88 貢獻。
  • 用於除錯 Zinc 的 ApiDiff 功能使用從 Dotty 借來的 Scala 實作。zinc#346@Krever 貢獻。
  • 在 Zinc 內部,使 ExtractAPI 使用 perRunCaches。zinc#347@gheine 貢獻。

內部變更 

  • 採用 Scalafmt 使用 neo-scalafmt 來格式化原始碼。
  • Scala Center 貢獻了腳本測試框架的重新設計,該框架具有批次模式執行功能。腳本現在重複使用相同的 sbt 實例來執行 sbt 測試,這將 CI 建置時間減少了 50%。#3151@jvican 貢獻。
  • sbt 1.0.0-M6 是使用 sbt 1.0.0-M5 建置的。#3184@dwijnand 貢獻。

重大變更的詳細資訊 

Zinc 1:基於類別的名稱雜湊 

Grzegorz Kossakowski(由 Lightbend 委託)為 Zinc 1.0 帶來的一項重大改進是基於類別的名稱雜湊,這將加快大型專案中 Scala 的增量編譯速度。

Zinc 1.0 的名稱雜湊會追蹤程式碼在類別層級的依賴關係,而不是在原始碼檔案層級。GitHub 議題 sbt/sbt#1104 列出了一些專案中在現有類別中新增方法的比較。

ScalaTest   AndHaveWord class:          Before 49s, After 4s (12x)
Specs2      OptionResultMatcher class:  Before 48s, After 1s (48x)
scala/scala Platform class:             Before 59s, After 15s (3.9x)
scala/scala MatchCodeGen class:         Before 48s, After 17s (2.8x)

這取決於一些因素,例如類別的組織方式,但可以看到 3 倍到 40 倍的效能提升。加速的原因是它透過將類別從原始碼檔案中解開,來編譯比以前更少的原始碼檔案。在將方法新增至 scala/scala 的 Platform 類別的範例中,sbt 0.13 的名稱雜湊過去會編譯 72 個來源,但新的 Zinc 會編譯 6 個來源。

Zinc API 變更 
  • xsbti.compile 套件下的 Java 類別,例如 IncOptions 隱藏建構函式。請使用工廠方法 xsbti.compile.Foo.of(...)
  • ivyScala: IvyScala 鍵重新命名為 scalaModuleInfo: ScalaModuleInfo
  • xsbti.Reporter#log(...)xsbti.Problem 作為參數。呼叫 log(problem.position, problem.message, problem.severity) 以委派給舊的 log(...)
  • xsbi.Maybexsbti.F0sxbti.F1 已變更為對應的 Java 8 類別 java.util.Optionaljava.util.Supplierjava.util.Function
  • 移除未使用的「常駐」選項。zinc#345@lukeindykiewicz 貢獻。
sbt 伺服器:用於工具整合的 JSON API 

sbt 1.0 包含伺服器功能,允許 IDE 和其他工具透過 JSON API 查詢建置設定並叫用命令。與 sbt 0.13 中的互動式 Shell 使用 shell 命令實作的方式類似,「server」也只是 shell 命令,可同時監聽人工輸入和網路輸入。作為使用者,由於伺服器,影響應該是最小的。

在 2016 年 3 月,我們 重新啟動了「伺服器」功能,使其盡可能小。我們與 JetBrains 的 @jastice(他負責 IntelliJ 的 sbt 介面)合作,以縮小功能清單。sbt 1.0 不會具備我們最初想要的所有功能,但從長遠來看,我們希望看到 IDE 和 sbt 生態系統之間使用此系統進行更好的整合。例如,IDE 將能夠發出編譯任務並以 JSON 事件的形式檢索編譯器警告。

{"type":"xsbti.Problem","message":{"category":"","severity":"Warn","message":"a pure expression does nothing in statement position; you may be omitting necessary parentheses","position":{"line":2,"lineContent":"  1","offset":29,"pointer":2,"pointerSpace":"  ","sourcePath":"/tmp/hello/Hello.scala","sourceFile":"file:/tmp/hello/Hello.scala"}},"level":"warn"}

新增的另一個相關功能是 bgRun 任務,例如,它允許伺服器程序在背景中執行,同時針對它執行測試。

build.sbt 的靜態驗證 

sbt 1.0 禁止在任務中 if 運算式和匿名函式的主體內呼叫 .value,可以使用 @sbtUnchecked 註釋來覆寫檢查。

靜態驗證也會捕捉到您是否忘記在任務主體中呼叫 .value

#3216#3225@jvican 貢獻。

逐出警告呈現 

sbt 1.0 改善了逐出警告的呈現方式。

之前

[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn]  * com.google.code.findbugs:jsr305:2.0.1 -> 3.0.0
[warn] Run 'evicted' to see detailed eviction warnings

之後

[warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[warn]
[warn]      * com.typesafe.akka:akka-actor_2.12:2.5.0 is selected over 2.4.17
[warn]          +- de.heikoseeberger:akka-log4j_2.12:1.4.0            (depends on 2.5.0)
[warn]          +- com.typesafe.akka:akka-parsing_2.12:10.0.6         (depends on 2.4.17)
[warn]          +- com.typesafe.akka:akka-stream_2.12:2.4.17 ()       (depends on 2.4.17)
[warn]
[warn] Run 'evicted' to see detailed eviction warnings

#3202@eed3si9n 貢獻。

sbt-cross-building 

@jrudolph 的 sbt-cross-building 是一個外掛程式作者的外掛程式。它新增了交叉命令 ^ 和 sbtVersion 切換命令 ^^,類似於 +++,但用於在主要版本之間切換多個 sbt 版本。sbt 0.13.16 將這些命令合併到 sbt 中,因為它提供的功能在我們將外掛程式遷移到 sbt 1.0 時很有用。

若要從 Shell 切換 pluginCrossBuild 中的 sbtVersion,請使用

^^ 1.0.0-M5

您的外掛程式現在將使用 sbt 1.0.0-M5(及其 Scala 版本 2.12.2)建置。

如果需要對特定 sbt 版本進行變更,現在可以將它們包含到 src/main/scala-sbt-0.13src/main/scala-sbt-1.0.0-M5 中,其中二進位 sbt 版本號碼會用作後綴。

若要跨多個 sbt 版本執行命令,請設定

crossSbtVersions := Vector("0.13.15", "1.0.0-M5")

然後,執行

^ compile

#3133@eed3si9n 貢獻(從 0.13.16-M1 正向移植)。

CopyOptions 

sbt IO 1.0 新增接受 sbt.io.CopyOptions()IO.copyFileIO.copyDirectory 變體。CopyOptions() 是類似於建構器模式的偽案例類別範例。

import sbt.io.{ IO, CopyOptions }

IO.copyDirectory(source, target)

// The above is same as the following
IO.copyDirectory(source, target, CopyOptions()
  .withOverwrite(false)
  .withPreserveLastModified(true)
  .withPreserveExecutable(true))

io#53@dwijnand 貢獻。

函式庫管理 API 和並行構件下載 

sbt 1.0 新增了由 Lightbend 的 Eugene Yokota (@eed3si9n) 和 Scala Center 的 Martin Duhem (@Duhemm) 共同撰寫的函式庫管理 API。此 API 旨在抽象化 Apache Ivy 以及其他依賴解析引擎,例如 Ivy、快取解析和 Coursier。

Ivy 引擎的並行構件下載是由 Scala Center 的 Jorge (@jvican) 貢獻的。它還引入了 Gigahorse OkHttp 作為網路 API,並且它也使用 Square OkHttp 進行構件下載。

lm#124@eed3si9n/@Duhemm 貢獻、 lm#90@jvican/@jsuereth 貢獻,以及 lm#104@eed3si9n 貢獻。

Zinc 內部儲存的二進位格式 

Scala Center 的 Jorge (@jvican) 使用 Google Procol Buffer 為 Zinc 的內部儲存貢獻了二進位格式。新格式為我們提供了三個主要優勢

  1. 分析格式層級的向後和向前二進位相容性。
  2. 更快(1.5 到 2 倍)的分析檔案序列化/反序列化。
  3. 提供了一種更好的方法來使分析檔案與機器無關。

zinc#351@jvican 貢獻。

依賴鎖定 

依賴鎖定功能仍在開發中,但 Scala Center 的 Jorge (@jvican) 新增了一些相關功能,這些功能應該可以共同運作以允許依賴鎖定。

  • Ivy 型函式庫管理的凍結模式,可確保解析始終是非傳遞的。lm#100
  • 新增了指定依賴項解析器的支援。lm#97
  • 新增「受管理總和檢查碼」,它會告訴 Ivy 跳過總和檢查碼流程。lm#111

貢獻者 

有太多人要感謝了。請參閱 Credits