sbt 最初由 Mark Harrah (@harrah) 在 2008 年创建。sbt 的大多数基本方面,例如 Scala 增量编译器、与 Maven 和 Ivy 依赖项的集成以及并行任务处理,都是由 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 的另一个值得注意的贡献是主持了一系列与 @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 负责发布 0.13.12 到 0.13.16,以及 sbt 1.0 的开发。
2017 年春季,Scala 中心参与了 Zinc 1 开发工作。Jorge Vicente Cantero (@jvican) 贡献了许多改进,包括针对阻止 Zinc 1 的“从…角度看”错误的修复。
从 2018 年春季开始,Ethan Atkins 作为社区成员加入 sbt 项目,并迅速成为该项目的领先贡献者。最初,他的贡献是实现 Close Watch,它使用原生代码在 macOS 上提供监视服务。从那时起,他一直在努力进行各种与性能相关的改进,包括分层类加载器、日志重写和使用 GraalVM 原生映像的原生瘦客户端。
根据 sbt/sbt、sbt/zinc、sbt/librarymanagement、sbt/util、sbt/io、sbt/contraband 和 sbt/website 上的 git shortlog -sn --no-merges
,318 位贡献者贡献了 9151 个非合并提交。
有关个人贡献的详细信息,请参见 Changes.
以下人员为 sbt 贡献了想法、文档或代码,但未列在上面
没有如此多的优秀插件,sbt 生态系统将不会是相同的。以下是部分插件及其贡献者
也感谢在 Stack Overflow(Jacek Laskowski、Lukasz Piepiora 等人)和 sbt Gitter 频道 上回答问题的人,以及在 GitHub 上报告问题和贡献想法的许多人。
感谢所有人的贡献。