1. 開發者指南(開發中)

開發者指南(開發中) 

這是一組關於 sbt 未來架構的文件。此文件的目標受眾是 sbt 外掛程式作者和 sbt 開發人員。另請參閱 我如何提供協助?

邁向 sbt 1.0 

在 2008-12-18,Mark Harrah 宣佈 sbt 0.3.2 為 sbt 的初始版本。Mark 一直是 sbt 的主要作者,直到 sbt 0.13.1 (2013-12-11)。在 2014 年,sbt 專案被移交給本文的作者 Josh Suereth 和 Eugene Yokota。

隨著我們邁向 sbt 1.0,我們希望穩定已經穩定的部分,並在重要的部分進行創新。穩定性有幾個層次

  • 概念上的穩定性
  • 建置定義的原始碼相容性
  • 外掛程式的二進位相容性

概念 

從概念上講,sbt 在其功能方面一直保持穩定

  1. 支援 Scala 的增量編譯
  2. 感知 Scala 二進位相容性的依賴管理
  3. 可使用 Scala 擴展的任務和外掛程式系統
  4. 一個基於文字的互動式 Shell

我們計劃更改的唯一一件事是最後一點。在 sbt 1.0 中,我們將用可透過 JSON API 和基於文字的用戶端存取的 sbt 伺服器取代互動式 Shell。

建置定義的原始碼相容性 

原始碼相容性表示適用於 sbt 版本 A 的建置原始碼在未經修改的情況下適用於另一個版本 B。我們對 sbt 1.0 的目標是採用語意版本控制,並在 1.x.y 期間維持建置的原始碼相容性。

外掛程式的二進位相容性 

外掛程式的二進位相容性(“bincompat”)表示為 sbt 版本 A 發佈的外掛程式在未經重新編譯的情況下適用於另一個版本 B。截至 2015 年 3 月,sbt 0.13 已保持 18 個月的二進位相容性。此處的穩定性有助於維護 sbt 外掛程式生態系統。我們對 sbt 1.0 的目標是採用語意版本控制,並在 1.x.y 期間維持建置的二進位相容性。

從開發的角度來看,維護二進位相容性成為我們在進行變更時需要擔心的額外約束。問題的根源在於 sbt 0.13 沒有區分公用 API 和內部實作。大多數事物都對外掛程式開放。