为 sbt 做贡献
以下是潜在贡献领域列表。此列表可能会很快过时,因此如果您对特定主题感兴趣,则可能需要查看sbt-dev 邮件列表。
有很多可能的可视化和分析机会。
’compile’ 生成源代码分析,其中包含
- 源代码依赖关系
- 项目间源代码依赖关系
- 二进制依赖关系(jar + 类文件)
- 表示源代码API 的数据结构。已经有了一些用于生成 dot 文件的代码,但尚未连接,但绘制依赖关系和继承关系图是一个普遍的工作领域。
- ’update’ 生成一个[更新报告][Update-Report],将 Configuration/ModuleID/Artifact 映射到检索到的文件
- Ivy 生成有关依赖关系的更详细的 XML 报告。这些报告带有 XSL 样式表以查看它们,但这不适用于大量依赖关系。在这方面的工作非常简单:XML 文件在
~/.ivy2
中创建,.xsl
和.css
也在那里,因此您甚至不需要使用 sbt。其他方法在电子邮件线程 中进行了描述 - 任务是静态和动态图的组合,查看运行图将很有用
- 设置是静态图,并且存在用于生成 dot 文件的代码,但尚未连接到任何地方。
- 支持对外部项目的依赖,例如 GitHub 上的项目。为了更实用,这应该支持更新依赖关系。也很容易将其扩展到其他检索项目的方式。例如,对 svn 和 hg 的支持是最近的贡献。
- 如果您喜欢解析器,sbt 命令和输入任务是使用自定义解析器组合器编写的,这些组合器提供选项卡完成和错误处理。除其他外,效率可以提高。
- javap 任务尚未重新集成
- 实现增强的 0.11 样式 warn/debug/info/error/trace 命令。目前,您像设置其他设置一样设置它
set logLevel := Level.Warn
或 : set Test / logLevel := Level.Warn
您可以创建包装此功能的命令,例如
warn Test/run
此外,trace 目前是一个整数,但实际上应该是一个抽象数据类型。
- 每个 sbt 版本都有更激进的增量编译,复制错误可能很困难。有一个模式可以生成连续编译之间的差异并记录传递给 scalac 的选项将很有帮助。这可以重新播放或检查以尝试找到原因。
文档
- 这些文档还有很多工作要做。如果您从 git 中检出它,有一个名为 Dormant 的目录,其中包含一些需要经过的内容。
- 主页提到了外部项目引用(例如指向 git 存储库的引用),但没有链接到任何解释如何使用它们的链接。
- 非常需要 API 文档。
- 在其他文档中查找有用的答案或类型/方法/值,并将对它们的引用拉到 /faq 或 /Name-Index 中,以便人们可以找到文档。总的来说,/faq 应该感觉更像是一组指向常规文档的指针,而不是文档的替代品。
许多页面可能需要更好的名称,或者在侧边栏中
右侧有 2-4 个字的简短说明。