这是关于 sbt 未来架构的文档集。本文件的目标受众是 sbt 插件作者和 sbt 开发人员。另请参阅 如何提供帮助?
在 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 在其功能上一直很稳定
我们计划更改的唯一部分是最后一点。在 sbt 1.0 中,我们将用 sbt 服务器替换交互式 shell,该服务器可以通过 JSON API 和基于文本的客户端访问。
源代码兼容性意味着,在 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 和内部实现。大多数内容对插件都是开放的。