これは、sbt の将来のアーキテクチャに関するドキュメントのセットです。このドキュメントの対象読者は、sbt プラグインの作成者および sbt 開発者です。「どのように貢献できますか?」も参照してください。
2008 年 12 月 18 日、Mark Harrah は sbt 0.3.2 を sbt の最初のリリースとして発表しました。Mark は sbt 0.13.1 (2013 年 12 月 11 日) まで sbt の主要な作者でした。2014 年に、sbt プロジェクトは、このドキュメントの著者である Josh Suereth と Eugene Yokota に引き継がれました。
sbt 1.0 に向けて、私たちはすでに安定しているものを安定させ、重要な場所で革新したいと考えています。安定性にはいくつかのレベルがあります
概念的には、sbt はその機能において安定しています
変更を計画しているのは最後の点だけです。sbt 1.0 では、インタラクティブシェルを JSON API およびテキストベースのクライアント経由でアクセス可能な sbt サーバーに置き換えます。
ソース互換性とは、sbt バージョン A で動作したビルドソースが、変更なしに別のバージョン B でも動作することを意味します。sbt 1.0 の目標は、セマンティックバージョニングを採用し、1.x.y の間、ビルドのソース互換性を維持することです。
プラグインのバイナリ互換性(「bincompat」)とは、sbt バージョン A 用に公開されたプラグインが、再コンパイルなしに別のバージョン B でも動作することを意味します。sbt 0.13 は、2015 年 3 月の時点で 18 か月間バイナリ互換性を維持しています。ここでの安定性は、sbt プラグインエコシステムの維持に役立ちます。sbt 1.0 の目標は、セマンティックバージョニングを採用し、1.x.y の間、ビルドのバイナリ互換性を維持することです。
開発の観点から見ると、バイナリ互換性の維持は、変更を加えるたびに考慮する必要がある追加の制約になります。問題の根本は、sbt 0.13 がパブリック API と内部実装を区別していないことです。ほとんどのものがプラグインに公開されています。