sbt は、もともと Mark Harrah (@harrah) によって 2008 年に作成されました。Scala のインクリメンタルコンパイラ、Maven および Ivy 依存性との統合、並列タスク処理など、sbt の基本的な側面のほとんどは、Mark によって考案され、最初に実装されました。
2010 年までに sbt 0.7 がリリースされたときには、多くのオープンソース Scala プロジェクトがビルドツールとして sbt を使用していました。
Mark は、会社が設立された 2011 年に Typesafe (現在の Lightbend) に入社しました。sbt 0.10.0 は同年出荷されました。Mark は、2014 年 3 月までメンテナー兼最も活発な貢献者であり、sbt 0.13.1 が彼の最後のリリースとなりました。
Typesafe の Josh Suereth (@jsuereth) が sbt の次のメンテナーになりました。
2014 年に、Eugene Yokota (@eed3si9n) が Typesafe に入社し、Josh と共に sbt を共同で率いることになりました。このチームは、0.13 シリーズを 0.13.5 まで進め、テクノロジプレビューとして 1.0 への軌道をスタートさせました。Josh が 2015 年に sbt 0.13.9 を最後に退社するまでには、彼らは AutoPlugin
を出荷し、sbt 0.13 を維持し、sbt サーバーの基礎を築きました。
Grzegorz Kossakowski (@gkossakowski) は、Typesafe の Scala チームに在籍中、「名前ハッシュ」と呼ばれるより優れたインクリメンタルコンパイラアルゴリズムに取り組みました。名前ハッシュは、sbt 0.13.6 (2014) でデフォルトのインクリメンタルコンパイラになりました。Lightbend は後に、Grzegorz にクラスベースの名前ハッシュと呼ばれる手法を使用して名前ハッシュを改良するように依頼し、これは Zinc 1 に採用されました。Grzegorz のもう 1 つの注目すべき貢献は、@WarszawScaLa と共に一連のミートアップを開催し、(腕を吊りながら悪名高い空白行の問題を修正したことです。
2015 年 5 月、Dale Wijnand (@dwijnand) が、コミュニティから inThisBuild
や -=
などの機能を貢献した後、コミッターになりました。
2015 年 6 月から 2016 年初めにかけて、Martin Duhem (@Duhemm) がインターンとして Typesafe に入社し、sbt に取り組みました。この間、Martin は、Zinc のコンパイラブリッジを設定可能にしたり、疑似ケースクラス (後に Contraband になりました) のコード生成を行うなど、重要なコンポーネントに取り組みました。
この頃、Eugene、Martin、Dale は sbt 1.x コードベースを開始し、コードベースを複数のモジュール (sbt/sbt、Zinc 1、sbt/librarymanagement、sbt/util、および sbt/io) に分割しました。目的は、Zinc 1 をすべてのビルドツールで使用できるインクリメンタルコンパイラにすることでした。
2016 年 8 月、Dale が Lightbend のツールチームに加わりました。Dale と Eugene は、sbt 1.0 の開発だけでなく、0.13.12 から 0.13.16 のリリースを監督しました。
2017 年春、Scala Center が Zinc 1 の開発活動に参加しました。Jorge Vicente Cantero (@jvican) は、Zinc 1 をブロックしていた「as seen from」バグの修正など、多くの改善に貢献しました。
2018 年春から、Ethan Atkins がコミュニティメンバーとして sbt プロジェクトに参加し、すぐにプロジェクトの主要な貢献者になりました。当初、彼の貢献は macOS で watch サービスを提供するためにネイティブコードを使用する Close Watch の実装でした。その後、レイヤードクラスローダー、ロギングのリライト、GraalVM ネイティブイメージを使用するネイティブシンクライアントなど、さまざまなパフォーマンス関連の改善に取り組んできました。
sbt/sbt、sbt/zinc、sbt/librarymanagement、sbt/util、sbt/io、sbt/contraband、および sbt/website での git shortlog -sn --no-merges
によると、318 人のコントリビューターによる非マージコミットが 9151 件ありました。
個々の貢献の詳細については、変更履歴をご覧ください。
以下の方々は、sbt にアイデア、ドキュメント、またはコードを提供してくれましたが、上記には記載されていません。
sbt のエコシステムは、多くの素晴らしいプラグインなしには成り立ちません。以下にいくつかのプラグインとその貢献者を紹介します。
また、Stack Overflow (Jacek Laskowski, Lukasz Piepiora 他) や sbt Gitter チャンネルで質問に答えてくださった方々、そして GitHub で問題点を報告し、アイデアを提供してくださった多くの方々に感謝します。
皆様、ありがとうございました。